получение идентификатора из списка при нажатии на элемент в другом действии - PullRequest
0 голосов
/ 10 ноября 2011

Код ниже дает генерацию ListView

public class MyList extends ListActivity {
static final String[] COUNTRIES = new String[] {LONG LIST OF COUNTRIES};
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(this,R.layout.main,COUNTRIES));
    ListView lv=getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent,View view,int position,long id){
        Intent i=new Intent(MyList.this,Another.class);
        Bundle b = new Bundle();
                          b.putInt("id", (int)id);
                          intent.putExtras(b);
                          startActivity(intent);
        }
    });
  }
}

Другое занятие

public class Another extends Activity{
  public void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  setContentView(R.layout.mainseocnd);
  Bundle b=new Bundle();
  int value= b.getInt("id",0);
  TextView tv=(TextView)findViewById(R.id.text);
  tv.setText(""+value);  
  }
}

Теперь, когда я нажимаю на любой элемент списка, скажем, id-5, всегда отображается 0 Я хочу получить идентификатор элемента списка, например, если пользователь щелкнет по второму элементу в списке, другая активность должна отобразить 1 (b / c начинается с 0). пожалуйста, поправьте меня, где это идет не так. Заранее спасибо !!

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Ваш способ получения значения неверен:

Bundle b=new Bundle();
int value= b.getInt("id",0);

Вы создаете новый пакет и пытаетесь получить из него значение, когда его нет (это новое) .Вместо этого вы должны получить дополнения с намерением запуска для этого действия.Попробуйте вместо

int value = getIntent().getIntExtra("id", 0);

.

1 голос
/ 10 ноября 2011

Во втором задании вместо

Bundle b=new Bundle();
int value= b.getInt("id",0); 

используйте

int value = icicle.getInt("id",0);

Это даст вам решение ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...