将listview中的整数传递给另一个活动

时间:2011-11-25 17:21:53

标签: java android sqlite android-intent

我想将listview(单击它时)的整数(id)传递给TheEndActivity.java。但我的代码无法正确检索整数。

UsernameList.java(它是整数来自的类)

public void onListItemClick(ListView parent, View view, int position, long id) {         
    Intent i = new Intent( this, TheEndActivity.class ); 
    i.putExtra( "int", (int)id);
    Log.e(LOG_TAG, "id value "+id);
    startActivity( i );

    Intent intent = new Intent(UsernameList.this, QuizAppActivity.class);
    startActivity(intent);
}

TheEndActivity.java(它是我需要在这里传递整数的类。它是在onCreate方法中创建的)

    Intent i = getIntent();
    final int number = i.getIntExtra("int", -1);

我需要使用整数(id)将其保存到数据库中(操作在TheEndActivity.java中完成)

finishBtn.setOnClickListener(new View.OnClickListener() {           
    @Override
    public void onClick(View v) {

        helper.insertMark(currentGame.getRight(), number );
        Log.e(LOG_TAG, "id value: " + number );
        Intent i = new Intent(TheEndActivity.this, MainMenu.class);
        startActivity(i);
    }
});

解决

问题是我称之为2项活动。谢谢你们

2 个答案:

答案 0 :(得分:4)

问题似乎在于调用2个startActivities。 TheEndActivity和QuizAppActivity都是活动吗?

  1. 你必须将TheEndActivity更改为IntentService或AsyncTask,如果它正在执行后台活动,例如将内容保存到数据库中。
  2. 如果不是,则只启动TheEndActivity并允许用户从那里导航到QuizAppActivity。

  3. 也可以尝试更改
    Intent i = new Intent(this,TheEndActivity.class);至 Intent i = new Intent(UsernameList.this,TheEndActivity.class);

答案 1 :(得分:0)

您正在使用startActivity调用intent,而{{1}}没有额外的int。