2012-04-10 3 views
3

У меня есть два класса, один из них, которые я передаю к посылает два параметра, которые 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)); 

ответ

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)); 
1

вам необходимо создать Bundle и сохранить в нем URL-адрес и имя файла. И тогда вы можете передать этот пакет в намерении, которое вызывает новое действие. В новом классе вы извлекаете информацию из пакета, используя getIntent().getExtras().

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"); 
Смежные вопросы