我正在创建一个应用程序,您可以在其中插入要执行的任务并进行修改。我目前可以在我创建的列表中查看任务,但是当我点击列表时,只显示标题,但其他条目都没有显示。
在输入屏幕中,我有代码,用以前的信息填充Entry屏幕:
mSaveButton = (ImageButton) findViewById(R.id.diaryform_ib_save);
Log.i(TAG,"Field Title: "+ mTitle);
Intent showTitle = getIntent();
String fieldTitle = showTitle.getStringExtra(Constants.DIARY_TITLE);
Log.i(TAG,"Field Title 2: "+ fieldTitle);
mTitle.setText(fieldTitle);
Intent showEntry = getIntent();
String fieldEntry = showEntry.getStringExtra(Constants.DIARY_ENTRY);
mEntry.setText(fieldTitle);
Log.i(TAG,"Field Entry: "+ mEntry);
Log.i(TAG,"Field Entry 2: "+ fieldEntry);
我有记录消息,所以我可以看到正在给出的信息。对于fieldTitle,传递标题,并传递fieldEntry null。当我同时创建fieldTitle时,两个字段都填充了标题。
在我的ListActivity类中,我有以下代码片段:
diaryDAO = new DAO(this); //Creates an instance of the DAO
Cursor diaryCursor = diaryDAO.queryDiary(Diary.DiaryItem.LIST_PROJECTION, null, null);
Log.i(TAG, "I get to here!");
String[] diaryDataColumns = { Diary.DiaryItem.COLUMN_NAME_DIARY_TITLE,Diary.DiaryItem.COLUMN_NAME_DIARY_ENTRY };
Log.i(TAG, "Also here");
int[] viewIDs ={ R.id.textView1 };
Log.i(TAG, "Diary Data Col" +diaryDataColumns);
Log.i(TAG, "I'm here");
//Creates backing adapter for the ListView
@SuppressWarnings("deprecation") s
SimpleCursorAdapter diaryAdapter= new SimpleCursorAdapter(
this,
R.layout.activity_diary_list,
diaryCursor,
diaryDataColumns,
viewIDs
);
Log.i(TAG, "Now im here");
this.setListAdapter(diaryAdapter);
在我创建diaryDataColumns字符串的地方,我尝试添加了Diary.DiaryItem.COLUMN_NAME_DIARY_ENTRY,当我将Diary.DiaryItem.COLUMN_NAME_DIARY_TITLE更改为ENTRY列表视图时,它不显示在输入屏幕内但是该条目显示给定的条目
有什么想法吗?对我做错了什么感到有些困惑。
由于
编辑:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent openItem = new Intent(this, DiaryEntryActivity.class);
Cursor listCursor = (Cursor)l.getAdapter().getItem(position);
openItem.putExtra(Constants.DIARY_TITLE, listCursor.getString(1));
startActivity(openItem); //Starts the intent actions
}
答案 0 :(得分:0)
在我看来,你给了两列,但只有一个文本视图。第一个给定的列数据将填充在文本视图中,但我认为,第一列中没有数据,但第二列包含数据,当您切换它们时,将在文本视图中填充该数据。尝试使用两个textViews。 但我认为与内容提供商合作是一种有效的方式,vogella.com上有一个很好的教程。
答案 1 :(得分:0)
由于您使用的是SQLite,我建议您使用SQLiteOpenHelper
。通常,您从Android API继承此类,然后使用它来实现ContentProvider
。 ContentProvider
子类会将Cursor
传递给您的应用,CursorAdapter
可以使用SimpleCursorAdapter
。我建议你从CursorLoader
开始,然后从那里进行自定义。您还应该了解允许您在单独的线程上从数据库加载数据的{{1}}。有关详细信息,请查看http://developer.android.com/guide/topics/ui/layout/listview.html。