2012-02-22 3 views
0

У меня есть ListView с некоторой информацией, когда я нажимаю на строку LisView, я хочу перейти к другому действию и передать аргумент строки.Передача параметров другим действиям android

Сейчас у меня есть это:

@Override защищен недействительным onListItemClick (ListView л, Вид v, внутр положение, длинный идентификатор) {

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

}

Files класс:

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; 
    } 
} 

Так что я хочу вызвать сеттер, а затем открыть эту активность. Я могу это сделать? Или есть другой способ, которым я должен заниматься.

Спасибо.

+3

почему вы используете нить, чтобы начать новую активность? Вам не нужно вводить поток в этой простой задаче – waqaslam

+0

что вы имеете в виду аргумент строки? это позиция позиции, которую вы нажали? – waqaslam

ответ

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 
... 
} 
3

Используйте putExtra, чтобы добавить аргумент в намерение.

Intent i= new Intent("android.app.reader.FILES"); 
    i.putExtra("arg", position); 
    startActivity(i); 

В целевой деятельности используют

Intent i1 = getIntent(); 
int pos = i1.getIntExtra("arg") 

, чтобы получить значение.