将参数传递给另一个类

时间:2012-04-10 18:01:17

标签: android android-activity parameters bundle

我有两个类,其中一个我传递给它发送两个参数 1-文件URL 2-文件名  因为我不想为我拥有的每个文件创建这个类

第一个类从OnItemClickListener传递参数

     list.setOnItemClickListener(new ListView.OnItemClickListener() {
         public void onItemClick(AdapterView<?> parent, View view,
                  int position, long id) {
                if (position == 0) {
                    // pass parameters file name & file url

                  }

第二课

public void onClick(View v) {
            // starting new Async Task
            new DownloadFileFromURL().execute(file_url);
        }
OutputStream output=new FileOutputStream(new File(dir, filename));

3 个答案:

答案 0 :(得分:1)

您需要创建Bundle并在其中存储URL和文件名。然后,您可以在调用新活动的意图中传递此捆绑包。在新类中,您使用getIntent().getExtras()从包中提取信息。

答案 1 :(得分:1)

您可以从第一个类传递fileName和fileURL,如下所示,

// pass parameters file name & file url
Intent i = new Intent(FirstClass.this,SecondClass.this);
i.putExtra("FileName",fileName);
i.putExtra("FileURL",fileURL);
startActivity(i);

从以下第二项活动中获取,

Bundle b = getIntent().getExtras();
filename = b.getString("fileName"); 
file_url = b.getString("fileURL"); 

答案 2 :(得分:0)

您可以通过以下代码执行此操作:

第一个类从OnItemClickListener传递参数

     list.setOnItemClickListener(new ListView.OnItemClickListener() {
         public void onItemClick(AdapterView<?> parent, View view,
                  int position, long id) {
                if (position == 0) {
                    // pass parameters file name & file url
                    Intent i = new Intent(FirstClass.this,SecondClass.this);
                    i.putExtra("FileName",fileName);
                    i.putExtra("FileURL",fileURL);
                    startActivity(i);

                  }

第二课

public void onClick(View v) {
                    filename = getIntent().getStringExtra("fileName"); 
                    file_url = getIntent().getStringExtra("fileURL");
            // starting new Async Task
            new DownloadFileFromURL().execute(file_url);
        }
OutputStream output=new FileOutputStream(new File(dir, filename));