ListView OnItemClickListener с новым действием - PullRequest
4 голосов
/ 16 февраля 2012

У меня есть listView с OnItemClickListener. Когда я нажимаю на элемент, я хотел бы открыть новый вид в новом действии, например:

final ListView lv1 = (ListView) findViewById(R.id.ListView02);
    lv1.setAdapter(new SubmissionsListAdapter(this,searchResults));

    lv1.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {
            Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
            startActivityForResult(myIntent, 0);
            UserSubmissionLog userSubmissionLogs= new UserSubmissionLog(position);
            System.out.println("Position "+position);
            }
        }
    );

Проблема в том, что мне нужно перенести номер позиции, по которому щелкнули мышью, в новое действие, и я не знаю, как это сделать.

Спасибо.

Ответы [ 3 ]

10 голосов
/ 16 февраля 2012

Вы должны добавить его к цели:

Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
myIntent.putExtra("position", position);
startActivityForResult(myIntent, 0);

, а в новой Деятельности позвонить:

int prePosition = getIntent().getIntExtra("position", someDefaultIntValue);
1 голос
/ 16 февраля 2012

Попробуйте,

public class yourClassName
{
     private static listIndex = 0;
     ......
     ......
     final ListView lv1 = (ListView) findViewById(R.id.ListView02);
    lv1.setAdapter(new SubmissionsListAdapter(this,searchResults));

    lv1.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {
            listIndex = position;
            Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
            startActivityForResult(myIntent, 0);
            UserSubmissionLog userSubmissionLogs= new UserSubmissionLog(position);
            System.out.println("Position "+position);
            }
        }
    );

   // make new static method to access listIdex from another class
   private static int getListIndex()
   {
        return position;
   }
}
0 голосов
/ 16 февраля 2012
Intent myIntent = new Intent(v.getContext(), UserSubmissionLog.class);
myIntent.putExtra("your_key_name_for_this_extra", position);
startActivityForResult(myIntent, 0);

А для принимающего действия получите значение int через

int receivedValue = getIntent().getIntExtra("your_key_name_for_this_extra", default_value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...