我需要使用 intent 从 onItemClick 方法将值从 1.java 传递到 2.Java 中的 onActivityResult
1.java
public void onItemClick(AdapterView<?> parent, View view, int position,long id)
{
int songindex=position;
Intent intent2 = new Intent(this, Play.class);
intent2.putExtra("songindex",songindex);
setResult(100, intent2);
startActivity(intent2);
}
2.java
public class Play extends Activity {
MediaPlayer mp;
int currentsong=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.play);
currentsong=getIntent().getIntExtra("songindex",-1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==100)
{
//Intent intent1=getIntent();
//currentsong=getIntent().getExtras().getInt("songindex");
pl(currentsong);
}
}
我的问题是 intent 值没有从 1.java 传递到 2.java,当单击 onItemClick 时,我需要使用 intent 传递值并调用方法 pl(songindex)
最佳答案
我认为您误解了 onActivityResult()
的工作原理。如果你想从 2.java
中的 extra 中获取值,请在 onCreate() 中使用
(正如您实际所做的那样)。有关 Activity 以及如何在它们之间传递值的更多信息,请参见 here .getIntent().getIntExtra("songindex", -1)
关于Android 从 onitemclick 调用 onactivityresult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020723/