0

こんにちは、リスト ビューでリスト ビューを使用しています。veg と non-veg があります。veg をクリックすると次のアクティビティに移動して項目が表示され、Non-veg をクリックすると次のアクティビティに移動します。両方のリスト項目に対して setonclickitemlistener() を書きましたが、veg または non-veg を押すと、Non-veg アクティビティのみになります。コードは次のとおりです。

public class MainActivity extends Activity {

String[] items={"veg","non-veg"};


protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

     ListView lv= (ListView)findViewById(R.id.listView1);

  ArrayAdapter<Object> adapter1 = new ArrayAdapter<Object (this,android.R.layout.simple_list_item_1,items);

  lv.setAdapter(adapter1);      

    lv.setOnItemClickListener(new OnItemClickListener() {


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

            {
            Toast.makeText(getBaseContext(),"YOU HAVE SELECTED VEG", 4000).show();
        Intent i=new Intent(MainActivity.this,veg.class);
        startActivity(i);
            }
        }
    });




  lv.setOnItemClickListener(new OnItemClickListener() {         

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

                Toast.makeText(getBaseContext(),"YOU HAVE SELECTED NON-VEG", 4000).show();
            Intent i=new Intent(MainActivity.this,Nonveg.class);
            startActivity(i);


            }
        });

} }

vegとnon vegのidの見分け方とsetonclicklistener()メソッドの書き方を教えてください。

4

3 に答える 3

0

OnItemClickListener は 1 つしか持つことができません... ビューをチェックして、どこに行くかを決定する必要があります。

于 2013-04-05T12:50:56.537 に答える
0

このコードは完全に機能しています:

public class MainActivity extends Activity{

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

        final ListView lv = (ListView)findViewById(R.id.listView1);
        lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        final String[] values = new String[] { "Veg", "Non-veg" };

                // Define a new Adapter
                // First parameter - Context
                // Second parameter - Layout for the row
                // Third parameter - ID of the TextView to which the data is written
                // Forth - the Array of data

                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, android.R.id.text1, values);


                // Assign adapter to ListView
                lv.setAdapter(adapter); 

                lv.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {
                        if (arg2 == 0) {
                        Intent intent = new Intent(MainActivity.this, veg.class);
                        startActivity(intent);
                        }
                        if (arg2 ==1) {
                            Intent intent = new Intent(MainActivity.this, Nonveg.class);
                            startActivity(intent);
                        }
                    }
                });
}

arg2 はリスト内の項目の位置です

于 2013-04-05T12:54:44.637 に答える
0

リストビューアイテムをクリックすると、リストビュー内の位置にあるアイテムを取得します.その野菜か非野菜かを確認してください

public class MainActivity extends Activity {
String[] items={"veg","non-veg"};
ListView lv;
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

 setContentView(R.layout.activity_main);

 lv= (ListView)findViewById(R.id.listView1);
 setContentView(lv);
 ArrayAdapter<Object> adapter1 = new ArrayAdapter<Object> (this,android.R.layout.simple_list_item_1,items);

 lv.setAdapter(adapter1);      

 lv.setOnItemClickListener(new OnItemClickListener() {


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

        {
             String itemselected =(String) (lv.getItemAtPosition(arg2));
             if(itemselected.equals("veg")){

             Toast.makeText(getBaseContext(),"YOU HAVE SELECTED VEG", 4000).show();
             Intent i=new Intent(MainActivity.this,veg.class);
             startActivity(i); 
          }
            else if(itemselected .equals("non-veg"))
            {
                Toast.makeText(getBaseContext(),"YOU HAVE SELECTED NON VEG",4000).show();
                     Intent i=new Intent(MainActivity.this,nonveg.class);
                      startActivity(i); 
            }

        }
    }


});

}
});
于 2013-04-05T12:57:40.717 に答える