Есть ли более эффективный способ сделать мой ListView? Программирую с Android только 2 недели - PullRequest
1 голос
/ 03 сентября 2011

Я чрезвычайно новичок в программировании Android и программировании в целом. Ничего предыдущего не узнал, а просто заинтересовался изучением Android-разработчика. В любом случае я вставлю свой код, но мне было интересно, есть ли лучший и более эффективный способ создать то, что я делаю, потому что мне потребовалось около 3 дней, чтобы даже придумать, как это сделать, так как я не мог найти какой-либо учебники по настройке намерений с элементами ListView. Заранее спасибо за помощь:)

открытый класс main extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    String[] listitems = new String[] {"1","2","3","4","5"};

    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.rowlayout,
            R.id.label, listitems));
}

// В основном это раздел, в котором я не уверен:)

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

            switch (position){
            case 0:
                Intent second = new Intent(this, second.class);
                startActivity(second);
            }
            return;
}

}

1 Ответ

0 голосов
/ 03 сентября 2011

Код технически исправен, но реализация метода onListItemClick () несколько необычна.Типичный шаблон при использовании ListView - получить элемент, на который вы щелкнули, и что-то с ним сделать, или передать его другому действию.Простой пример:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    // get the item we clicked on
    String item = (String) this.getListAdapter().getItem(position);

    Intent second = new Intent(this, second.class);
    // add the clicked item to the intent, to pass it to the second activity
    second.putExtra("com.my.package.listItem", item);
    startActivity(second);
}
...