2017-09-04 9 views
0

アクティビティクラスには次のコードが実装されています。その間、アプリケーションは起動時にクラッシュします。リストビューでTextViewとToggleButtonを読み込むためのカーソルアダプタ

私には何が欠けていますか?

public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Object> { 
private ListView obj; 
DBHelper mydb; 
SimpleCursorAdapter dataAdapter; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Cursor rs = mydb.getAllAlarms(); 
    startManagingCursor(rs); 
    String[] from = new String[]{"name"}; 
    int[] to = new int[]{R.id.alarm_name}; 

    dataAdapter = new SimpleCursorAdapter(this, R.layout.listview_row, rs, from, to, 0); 
obj = (ListView)findViewById(R.id.listViewAlarms); 
obj.setAdapter(dataAdapter); 
getSupportLoaderManager().initLoader(0, null, this); 

    obj.setOnItemClickListener(new OnItemClickListener(){ 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
           long arg3) { 
      //obj.getItemAtPosition(arg2); 
      // TODO Auto-generated method stub 
      String itemVal =(String) arg0.getItemAtPosition(arg2); 

      Bundle dataBundle = new Bundle(); 
      dataBundle.putString("name", itemVal); 
      Intent intent = new 
        Intent(getApplicationContext(),DisplayAlarm.class); 
      intent.putExtras(dataBundle); 
      startActivity(intent); 
     } 
    }); 

} 

ありがとうございました。

Joseph

+0

スタックオーバーフロー(SO)はコードサンプルロケーションサービスではありません。特定のプログラミング上の問題がある場合は、[よく質問するにはどうすればいいですか?](https://stackoverflow.com/help/how-to-ask)と[How、完全で検証可能な例](https://stackoverflow.com/help/mcve) – MikeT

答えて

1

あなたはアダプタにカーソルを置いていません。代わりにmydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATEDを使用しての、また

dataAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.listview_row, 
      rs, new String[] { mydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATED}, 
      new int[] { R.id.alarm_name, R.id.alarm_activated }, 0); 

にこの

dataAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.listview_row, 
      null, new String[] { mydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATED}, 
      new int[] { R.id.alarm_name, R.id.alarm_activated }, 0); 

から、あなたのコードを変更し 、単にカラム名を渡します。

+0

ありがとうございますLalit。あなたの提案を考慮して、上記のコードを修正しました。一方、Appは起動時にクラッシュします。何が間違っているのか分かりますか? – JF0001

+0

私が今助けることができる唯一の方法はあなたのlogcatをチェックすることです。あなたはそれを追加する必要があります。 –

関連する問題