onClick Справка ListView - PullRequest
       1

onClick Справка ListView

0 голосов
/ 27 мая 2011

Хорошо, я очень плохо знаком с Android и программированием в целом. Я следовал руководству на странице разработчиков Android для создания представления списка. Теперь я действительно хочу что-то с этим сделать. У меня это работает, чтобы перейти к одному представлению, но я хочу, чтобы два элемента в списке переходили к разным действиям. Вот код, который у меня уже есть.

package com.pais.convert;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class list extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      String[] choose = getResources().getStringArray(R.array.list_chooser);
      setListAdapter(new ArrayAdapter<String>(this,
              android.R.layout.simple_list_item_1, choose));

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        Intent intent = new Intent(this, tempConvert.class);
        intent.putExtra("KEY_SELECTED_INDEX", position);
        startActivity(intent);
    }



    }

У меня есть один другой вид деятельности, но как мне иметь два отдельных элемента в списке, каждый из которых выполняет разные действия? Но все еще запускается из того же списка?

Спасибо за помощь.

1 Ответ

1 голос
/ 27 мая 2011

Для ListActivity проще всего переопределить onListItemClick в самом действии.

РЕДАКТИРОВАТЬ:

Вот что я имею в виду:

public class test extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      String[] choose = getResources().getStringArray(R.array.list_chooser);
      setListAdapter(new ArrayAdapter<String>(this,
              android.R.layout.simple_list_item_1, choose));

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // Start another activity to do something with the selected item.
        // I'll assume the other activity is defined in the class
        // AnotherActivity:
        Intent intent = new Intent(this, AnotherActivity.class);
        // now you can add additional information to the intent for the
        // other activity to use. For instance, to pass just the index of the
        // selected item, you could code:
        intent.putExtra("KEY_SELECTED_INDEX", position);
        // (The string "KEY_SELECTED_INDEX" is an arbitrary string you choose
        // to name this piece of data. AnotherActivity will use the same name
        // to retrieve it. Other extras would be added under different names.)
        startActivity(intent);
    }
}

Тогда вам потребуется определить отдельное действие для отображения второго вида:

public class AnotherActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        int position = intent.getIntExtra("KEY_SELECTED_INDEX", -1);
        if (position == -1) {
            Toast.makeText(this, "No selection to show!", Toast.DURATION_LONG)
                 .show();
        }

        // continue with setting up the activity
    }
}

Вам также необходимо добавить это второе действие в файл манифеста вашего приложения.

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