Запустите одно действие из другого со значением элемента - PullRequest
0 голосов
/ 30 мая 2011

У меня есть ListActivity:

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

      setContentView(R.layout.no_elements_l);

      String[] receipts = getResources().getStringArray(R.array.receipts_array);
      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, receipts));

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

      lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
          // When clicked, show a toast with the TextView text
          Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
              Toast.LENGTH_SHORT).show();


        }

Мне бы хотелось: когда пользователь нажимает на элемент списка, запускается новое действие с именем «просмотр». Кроме того, мне нужно сказать этому виду "view", какой элемент из списка назвал его. Например, если я щелкаю по 3-му элементу списка, должна быть запущена активность «view» и показывается мне text = 3-й элемент массива строк. Фрагмент кода «view» находится здесь (значение i в последней строке должно быть отправлено по основной активности этому, в моем примере i = 3):

String[] receipts = getResources().getStringArray(R.array.receipts_array);
    TextView tv = new TextView(this);
    tv.setText(receipts[i]);

Подскажите, пожалуйста, как 1) запустить "просмотр" активности, когда пользователь щелкает элемент списка; 2) как запустить в этом случае «просмотр» с параметром, описывающим номер выбранного элемента?

Ответы [ 2 ]

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

Добавьте позицию элемента в ваше намерение и начните новое действие.

....
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
    Toast.LENGTH_SHORT).show();

Intent intent = new Intent(MedTime.this, NewActivity.class);
intent.putExtra("item", position);
startActivity(intent);

Затем в начатом упражнении извлеките элемент в onCreate () из намерения.

Intent intent = getIntent();

int id = intent.getIntExtra("item", -1);

if (id != -1) {
    Log.d(TAG, "Received item: " + id);
}

После этого я не могу сказать, что ты хочешь делать.Одна возможность - получить строковое значение из вашего массива как.

String[] receipts = getResources().getStringArray(R.array.receipts_array);
String myItem = receipts[id]
0 голосов
/ 30 мая 2011

третий параметр "позиция" - нажатие позиции элемента начинается с нуля.что еще тебе нужно ??

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