2017-09-04 40 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); 
     } 
    }); 

} 

谢谢你的帮助。

约瑟夫

+0

堆栈溢出(SO)不是代码示例位置服务。如果您有特定的编程问题,请相应地编辑您的问题,注意[如何提出一个好问题?](https://stackoverflow.com/help/how-to-ask)和[如何创建最小,完整且可验证的示例](https://stackoverflow.com/help/mcve) – MikeT

回答

1

你还没有把光标放在你的适配器中。 从这个

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); 

更改代码

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); 

此外,而不是使用mydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATED,只是通过列名。

+0

谢谢你的时间Lalit。考虑到你的建议,我修改了上面的代码。同时,该应用程序现在崩溃后启动它。你会知道我做错了什么吗? – JF0001

+0

我现在可以帮助的唯一方法是检查你的logcat。你需要添加它。 –

相关问题