0

私のinListViewから私の of のアイテムを取り込むことができます。ここで、1 つのアイテム ( 内の合計 8 アイテム) をクリックして、という名前の新しいアクティビティに移動し、そのすべての栄養成分を表示します。SQLiteDatabaselunch.javaListViewDisplay.java

編集後

lunch.java:

public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
    switch(pos)

    {
    case 0 :
        String mealName = (String) parent.getItemAtPosition(pos);
        Cursor cursor = dbopener.getBreakfastDetails(mealName);
        cursor.moveToNext();
        id = cursor.getLong(cursor.getColumnIndex(mealName));
        String message = cursor.getString(1)  + "\n" + cursor.getInt(2);
        Intent event1 = new Intent("com.edu.tp.iit.mns.Display");
        event1.putExtra("name", id);
        startActivity(event1);
        break;

Display.java

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.display);

        TextView tv = (TextView) findViewById(R.id.tvfoodName);     


        Intent intent = getIntent();
        long id = intent.getLongExtra("name", -1);
        if(id == -1){
            return;
        }

        tv.setText(-1); 

}
4

1 に答える 1

5

には、クリックされた要素のパラメーター、パラメーターonItemcClickが既にあります。それを使用して、次のアクティビティでアイテムを識別します。idid

public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {    
    Intent newActivity = new Intent("com.edu.tp.iit.mns.Display");
    newActivity.putExtra("the_key", id);
    startActivity(newActivity);
}

次に、Displayアクティビティでその long 値を取得し、それに対応するデータベースからデータを取得しますid

Intent newActivity = getIntent();
long id = newActivity.getLongExtras("the_key", -1);
if (id == -1) {
    //something has gone wrong or the activity is not started by the launch activity
    return
}
//then query the database and get the data corresponding to the item with the id above

上記のコードは、Cursorベースのアダプターの場合に機能します。ただし、おそらくリストベースのアダプターを使用します( a ではなく a をgetItemAtPosition(pos)返すため)。この場合、その食事名の一意の名前を返し、それをアクティビティに渡すメソッドを作成します。StringCursorgetLunchDetailsidDetails

public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
    String mealName = (String)parent.getItemAtPosition(pos);
    Cursor cursor = dbopener.getLunchDetails(mealName);
    cursor.moveToNext();
    long id = cursor.getLong(cursor.getColumnIndex("the name of the id column(probably _id"));
    Intent newActivity = new Intent("com.edu.tp.iit.mns.Display");
    newActivity.putExtra("the_key", id);
    startActivity(newActivity);
}
于 2012-06-04T05:05:50.300 に答える