как сделать интерактивный просмотр списка - PullRequest
1 голос
/ 16 октября 2011

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

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class listV extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setListAdapter( new ArrayAdapter<String>(this, R.layout.listview,Food));

    ListView list = getListView();
    list.setTextFilterEnabled(true);
    list.setOnItemClickListener(new OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), ((TextView)      arg1).getText(), Toast.LENGTH_SHORT).show();
        }

    });

}




static final String[] Food = new String[]{
"Physical Activity" , "Healthy Diet", "Childhood Obesity"

};

}

Любая помощь будет оценена.Я только начинающий, поэтому, пожалуйста, попробуйте объяснить подробно.

Ответы [ 2 ]

1 голос
/ 16 декабря 2011

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

package com.tylerbmc.test;

import android.app.ListActivity;

import android.content.Intent;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

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

    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
            getResources().getStringArray(R.array.abdominals)));

    ListView list = getListView();
    list.setOnItemClickListener(new OnItemClickListener() {


        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            Intent i;

            if (position == 1) {
                i = new Intent(Main.this, Second.class);
                startActivity(i);
            }
            else if (position == 2) {
                i = new Intent(Main.this, Third.class);
                startActivity(i);
            }




        }
    }); 

}

}

1 голос
/ 16 октября 2011

Похоже, вы на 95% пути. В вашем методе прослушивателя onItemClick вы просто должны начать новое действие, как обычно. Вы можете использовать 3-й аргумент onItemClick, чтобы указать позицию элемента списка, по которому щелкнули, и использовать его для дифференциации вызываемого вами действия ИЛИ передать его в одно действие:

@Override
public void onItemClick(AdapterView<?> arg0, View position, int arg2, long arg3) {

        Intent i;
        if( position == 1 ){           
            i = new Intent(listV.this, MyFirstActivity.class);
        } else if (position == 2){           
            i = new Intent(listV.this, MySecondActivity.class);
        } else if (position == 3) {
            i = new Intent(listV.this, MyThirdActivity.class);
        } else {
            return;
        }           
        startActivity(i);

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