我有一个带有一些信息的ListView,当我按下LisView行时,我想转到其他活动并将行参数传递给它。
现在我有了这个:
@覆盖 protected void onListItemClick(ListView l,View v,int position,long id){
Thread my_files_thread = new Thread(){
//start thread
public void run (){
try{
startActivity(new Intent("android.app.reader.FILES"));
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
//finish();
}
}
};// Brackets means that thread is closing
my_files_thread.start();
}
文件类:
public class Files extends Activity{
public String name = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.files);
}
public String getName() {
return name;
}
public void setName(String name) {
name = name;
}
}
所以我想打电话给setter,然后打开那个活动。我能做到这一点吗?或者我还有其他办法。
感谢。
答案 0 :(得分:3)
使用putExtra
将参数添加到intent中。
Intent i= new Intent("android.app.reader.FILES");
i.putExtra("arg", position);
startActivity(i);
在目的地活动中使用
Intent i1 = getIntent();
int pos = i1.getIntExtra("arg")
获取价值。
答案 1 :(得分:2)
首先,我不明白你在onListItemClick
使用线程的原因。我认为没有任何使用它。
使用以下代码从onListItemClick
Intent intent = new Intent("android.app.reader.FILES");
intent.putExtra("whatever", "value to pass");
startActivity(intent);
使用以下代码在Files
活动中检索此值:
public void onCreate(Bundle saveInstanceState) {
Intent fromIntent = getIntent(); //returns intent which started this activity
String myValue = fromIntent.getStringExtra("whatever"); //returns the value passed by old activity
...
}