2017-02-06 11 views
0

アンドロイドスタジオのリストビューにツールバーを追加しようとしています...リストビューがツールバーをサポートしていないことを理解しています。私はlistviewを変更しようとしました。そして私は多くのエラーを取得しようとしています...私は約80のサンプルを見て、私が間違ってやっていることを理解できません...誰もツールバーとリストビューあなたが与えることができる....リストビューにツールバーを追加する方法

をここに余分な助けが私の現在のリストビューのコードここ

package mypackage.android; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import mypackage.android.database.CommonNamesAdapter; 

public class CommonNames extends ListActivity { 

    CommonNamesAdapter cnTable; 
    ListView cnListView; 
    Cursor c; 

    private static final int COMMON_NAME_ACTIVITY_START = 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.common_names_list); 

     cnTable = new CommonNamesAdapter(); 
     cnTable.open(getApplicationContext()); 

     c = cnTable.fetchAllCommonNames(); 
     startManagingCursor(c); 

     if(c!=null){ 
      SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        R.layout.common_names_row, 
        c, 
        new String[] {c.getColumnName(1)}, 
        new int[] {R.id.commonName}); 
      setListAdapter(adapter); 
     } 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     c.moveToPosition(position); 

     Intent i = new Intent(this, CommonNameDescription.class); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME_ROWID, id); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME, c.getString(
       c.getColumnIndexOrThrow(CommonNamesAdapter.COMMON_NAME))); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME_COUNT, c.getString(
       c.getColumnIndexOrThrow(CommonNamesAdapter.COMMON_NAME_COUNT))); 
     startActivityForResult(i, COMMON_NAME_ACTIVITY_START); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
     //Bundle extras = intent.getExtras(); 
     switch(requestCode) { 
     default: break; 
     } 
    } 

    @Override 
    protected void onDestroy(){ 
     super.onDestroy(); 
     c.close(); 
     cnTable.close(); 
    } 

} 

iが見えるようにコードをしたいと思いますが、それは

package mypackage.android; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.Toast; 

import mypackage.android.database.CommonNamesAdapter; 

public class CommonNames extends AppCompatActivity { 

    CommonNamesAdapter cnTable; 
    ListView cnListView; 
    Cursor c; 

    private static final int COMMON_NAME_ACTIVITY_START = 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.common_names_list); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     cnTable = new CommonNamesAdapter(); 
     cnTable.open(getApplicationContext()); 

     c = cnTable.fetchAllCommonNames(); 
     startManagingCursor(c); 

     if(c!=null){ 
      SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        R.layout.common_names_row, 
        c, 
        new String[] {c.getColumnName(1)}, 
        new int[] {R.id.commonName}); 
      setListAdapter(adapter); 
     } 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     c.moveToPosition(position); 

     Intent i = new Intent(this, CommonNameDescription.class); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME_ROWID, id); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME, c.getString(
       c.getColumnIndexOrThrow(CommonNamesAdapter.COMMON_NAME))); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME_COUNT, c.getString(
       c.getColumnIndexOrThrow(CommonNamesAdapter.COMMON_NAME_COUNT))); 
     startActivityForResult(i, COMMON_NAME_ACTIVITY_START); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
     //Bundle extras = intent.getExtras(); 
     switch(requestCode) { 
     default: break; 
     } 
    } 

    @Override 
    protected void onDestroy(){ 
     super.onDestroy(); 
     c.close(); 
     cnTable.close(); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 

     return true; 
    } 


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     boolean bRet=false;//set true is menu selection handled 
     switch (item.getItemId()) { 
      case R.id.action_settings_get_pro: 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setData(Uri.parse(getString(R.string.pro_version_url))); 
       startActivity(intent); 
       bRet=true; 
       break; 
      case R.id.action_settings_get_pro2: 
       Intent intent2 = new Intent(Intent.ACTION_VIEW); 
       intent2.setData(Uri.parse(getString(R.string.pro_version_url))); 
       startActivity(intent2); 
       bRet=true; 
       break; 
      case R.id.action_settings_app_help: 
       Toast.makeText(this, this.getString(R.string.action_settings_app_help_text), Toast.LENGTH_SHORT).show(); 
       bRet=true; 
       break; 
      case R.id.action_settings_about_app: 
       Toast.makeText(this, this.getString(R.string.action_settings_about_text), Toast.LENGTH_SHORT).show(); 
       bRet=true; 
       break; 
      case R.id.action_settings_rate_app: 
       Intent intent3 = new Intent(Intent.ACTION_VIEW); 
       intent3.setData(Uri.parse(getString(R.string.rate_this_app_url))); 
       startActivity(intent3); 
       bRet=true; 
       break; 
      case R.id.action_settings_privacy_policy: 
       Intent intentprivacy = new Intent(Intent.ACTION_VIEW); 
       intentprivacy.setData(Uri.parse(getString(R.string.privacy_policy_url))); 
       startActivity(intentprivacy); 
       bRet=true; 
       break; 
      case R.id.action_settings_all_our_apps: 
       Intent intent4 = new Intent(Intent.ACTION_VIEW); 
       intent4.setData(Uri.parse(getString(R.string.all_our_apps_url))); 
       startActivity(intent4); 
       bRet=true; 
       break; 
      default: 
       bRet=super.onOptionsItemSelected(item); 
     } 
     return bRet; 
    } 


} 

仕事doesntの何ですが大好き何か助けが大いに評価されるでしょう。私は今何時間も私の髪を引き出しています...

+0

のIDを変更してください、あなたはAppCompatActivityで何のエラーを取得するのですか? –

+0

setListAdapter(アダプター);赤色で無効になりますので、super.onListItemClick – skapaid

+0

以下を確認してください。 –

答えて

1

は、この(使用AppCompatActivity)

public class CommonNames extends AppCompatActivity implements AdapterView.OnItemClickListener { 

     CommonNamesAdapter cnTable; 
     ListView cnListView; 
     Cursor c; 

     private static final int COMMON_NAME_ACTIVITY_START = 1; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 
      setContentView(R.layout.common_names_list); 

      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
      setSupportActionBar(toolbar); 

      cnListView= (ListView) findViewById(R.id.cnListView); 

      cnTable = new CommonNamesAdapter(); 
      cnTable.open(getApplicationContext()); 

      c = cnTable.fetchAllCommonNames(); 
      startManagingCursor(c); 

      if(c!=null){ 
       SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
         R.layout.common_names_row, 
         c, 
         new String[] {c.getColumnName(1)}, 
         new int[] {R.id.commonName}); 
       cnListView.setAdapter(adapter); 
       cnListView.setOnItemClickListener(this); 

      } 
     } 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
      super.onActivityResult(requestCode, resultCode, intent); 
      //Bundle extras = intent.getExtras(); 
      switch(requestCode) { 
       default: break; 
      } 
     } 

     @Override 
     protected void onDestroy(){ 
      super.onDestroy(); 
      c.close(); 
      cnTable.close(); 
     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.menu_main, menu); 

      return true; 
     } 


     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      boolean bRet=false;//set true is menu selection handled 
      switch (item.getItemId()) { 
       case R.id.action_settings_get_pro: 
        Intent intent = new Intent(Intent.ACTION_VIEW); 
        intent.setData(Uri.parse(getString(R.string.pro_version_url))); 
        startActivity(intent); 
        bRet=true; 
        break; 
       case R.id.action_settings_get_pro2: 
        Intent intent2 = new Intent(Intent.ACTION_VIEW); 
        intent2.setData(Uri.parse(getString(R.string.pro_version_url))); 
        startActivity(intent2); 
        bRet=true; 
        break; 
       case R.id.action_settings_app_help: 
        Toast.makeText(this, this.getString(R.string.action_settings_app_help_text), Toast.LENGTH_SHORT).show(); 
        bRet=true; 
        break; 
       case R.id.action_settings_about_app: 
        Toast.makeText(this, this.getString(R.string.action_settings_about_text), Toast.LENGTH_SHORT).show(); 
        bRet=true; 
        break; 
       case R.id.action_settings_rate_app: 
        Intent intent3 = new Intent(Intent.ACTION_VIEW); 
        intent3.setData(Uri.parse(getString(R.string.rate_this_app_url))); 
        startActivity(intent3); 
        bRet=true; 
        break; 
       case R.id.action_settings_privacy_policy: 
        Intent intentprivacy = new Intent(Intent.ACTION_VIEW); 
        intentprivacy.setData(Uri.parse(getString(R.string.privacy_policy_url))); 
        startActivity(intentprivacy); 
        bRet=true; 
        break; 
       case R.id.action_settings_all_our_apps: 
        Intent intent4 = new Intent(Intent.ACTION_VIEW); 
        intent4.setData(Uri.parse(getString(R.string.all_our_apps_url))); 
        startActivity(intent4); 
        bRet=true; 
        break; 
       default: 
        bRet=super.onOptionsItemSelected(item); 
      } 
      return bRet; 
     } 


    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
     c.moveToPosition(position); 

     Intent i = new Intent(this, CommonNameDescription.class); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME_ROWID, id); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME, c.getString(
       c.getColumnIndexOrThrow(CommonNamesAdapter.COMMON_NAME))); 
     i.putExtra(CommonNamesAdapter.COMMON_NAME_COUNT, c.getString(
       c.getColumnIndexOrThrow(CommonNamesAdapter.COMMON_NAME_COUNT))); 
     startActivityForResult(i, COMMON_NAME_ACTIVITY_START); 
    } 
} 

とレイアウトファイルのようにリストビュー

<ListView 
android:id="@+id/cmListView" 
android:height="" ....../> 
+0

iveはappcompatactivityを追加し、listadapterをcnListView.setListAdapter(adapter)に変更しました。しかしそれはまだ赤で、それは私にエラーを与えるメソッド 'setListAdapter(android.widget.SimpleCursorAdapter)'を解決できません – skapaid

+0

ああ私の間違い。 cnListView.setAdapter(adapter)を実行する必要があります。私の更新された答えを確認してください –

+0

あなたが投稿したコードの2番目の部分を追加する方法がわかりません。どこに置くべきかわかりません... \tからコード全体を削除しますか? \t空onListItemClick( \t \t startActivityForResult(I、COMMON_NAME_ACTIVITY_START)へのListView; \t} – skapaid

関連する問題