не иницииране на друга дейност в списъчен изглед щракване

Това е моят код. Тук съм в изглед на списък с някои данни от масив. Когато натисна списъка, мога да го открия с помощта на Toast. Но не мога да извикам друга дейност. на мястото на събитието Toast.
public class ListView extends ListActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setListAdapter(new ArrayAdapter<String>(this, R.layout.foodjoint, RESTAURANTS));

    android.widget.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();
            myClickHandler();
        }
    });

    //      ListView restuList=ListView();

}

static final String[] RESTAURANTS = new String[] {
    "Restaurant 1", "Restaurant 2", "Restaurant 3", "Restaurant 4", "Restaurant 5",
    "Restaurant 6", "Restaurant 7", "Restaurant 8", "Restaurant 9", "Restaurant 10",
    "Restaurant 11", "Restaurant 12", "Restaurant 13", "Restaurant 14", "Restaurant 15"
};
public void myClickHandler() {
    finish();
    Intent gotoLIst=new Intent(ListView.this,MenuActivity.class);
    startActivity(gotoLIst);
}

и ето моят XmL файл

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/AliceBlue "
    android:padding="10dp"
    android:textSize="16sp"
    android:focusableInTouchMode="false"
    android:clickable="false"
    android:focusable="false" >

I need to call another activity @ listView onitemClick.

Всъщност използвах друга дейност, която също използва някакъв изглед на списък. и тази дейност съдържа някаква грешка. Ето защо не работи. Благодаря на Luksprog, че ми помогна да намеря отговора.


person kaushikSuman    schedule 09.04.2012    source източник


Отговори (1)


Вероятно ще искате да finish() текущия Activity, след като започнете новия:

public void myClickHandler() {
    Intent gotoLIst=new Intent(ListView.this,MenuActivity.class);
    startActivity(gotoLIst);
    finish();
}
person user    schedule 09.04.2012
comment
така че искаш да имаш предвид, че ако просто извикам този methof след редактирането ти, тогава мога да извикам друг метод? добре, нека опитам - person kaushikSuman; 09.04.2012
comment
04-09 17:00:10.168: E/AndroidRuntime(271): java.lang.IllegalStateException: ArrayAdapter изисква ID на ресурса да бъде TextView тук е изключение - person kaushikSuman; 09.04.2012
comment
@kaushik Новата дейност MenuActivity има ли ListView, на която сте задали ArrayAdapter? - person user; 09.04.2012
comment
@kaushik Ако използвате същия конструктор за ArrayAdapter, както направихте в първия клас, тогава полето int (като R.layout.foodjoint) трябва да сочи към файл с оформление, който съдържа само TextView и нищо друго. Ако искате нещо освен това TextView има друг конструктор, който да използвате. - person user; 09.04.2012