Передача параметров на другие действия Android - PullRequest
0 голосов
/ 22 февраля 2012

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

Пока у меня есть это:

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

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

Спасибо.

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

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

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

В пункте назначения используйте

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

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

2 голосов
/ 22 февраля 2012

Прежде всего, я не понимаю, почему вы используете поток в 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
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...