将参数传递给其他活动android

时间:2012-02-22 10:30:20

标签: java android android-layout

我有一个带有一些信息的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,然后打开那个活动。我能做到这一点吗?或者我还有其他办法。

感谢。

2 个答案:

答案 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
...
}