0

カスタム リスト ビューがあり、ユーザーがアイテムをクリックすると次の画面に移動しようとしています。うまくいかないようです。そうでなければ、切り替えてみました。どちらも使用しなくても機能しますが、そのようにすると、すべてのアイテムが同じ画面に移動します。どんな助けでも感謝されます。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options_main);

    OptionMainHeader option_list[] = new OptionMainHeader[]
    {
        new OptionMainHeader(R.drawable.clock_icon_48, "Helo"),
        new OptionMainHeader(R.drawable.weather_cloudy, "Apple"),
        new OptionMainHeader(R.drawable.weather_cloudy, "Mango"),
        new OptionMainHeader(R.drawable.weather_cloudy, "Banana"),

        };

    OptionMainHeader1 adapter = new OptionMainHeader1(this, R.layout.option_main_header1, option_list);

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

    View header = (View)getLayoutInflater().inflate(R.layout.option_main_header, null);
    listView1.addHeaderView(header);
    listView1.setAdapter(adapter);

    listView1.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            int position = listView1.getSelectedItemPosition();
            String selectedFromList =(String) (listView1.getItemAtPosition(position));

            if (selectedFromList == "Helo"){
                Intent CurrentWaitTime = new Intent(getApplicationContext(), go.class);
                startActivity(CurrentWaitTime);
            } else if (selectedFromList == "Apple"){
                Intent Appointments = new Intent(getApplicationContext(), no.class);
                startActivity(Appointments);
            } else if (selectedFromList == "Mango"){
                Intent Logout = new Intent(getApplicationContext(), go.class);
                startActivity(Logout);
            } else if (selectedFromList == "Banana"){
                Intent Exit = new Intent(getApplicationContext(), low.class);
                startActivity(Exit);
            }
        }
    });

}
4

3 に答える 3

0

「==」を使用して文字列を比較することはできません。あなたがする必要があるのは、メソッド String.equals(String) を使用することです。何かのようなもの:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    String selectedFromList = option_list[position].getTHATSTRING();
    if (selectedFromList.equals("Helo")){
        Intent CurrentWaitTime = new Intent(getApplicationContext(), go.class);
        startActivity(CurrentWaitTime);
    } else if (selectedFromLis.equals("Apple")){
        Intent Appointments = new Intent(getApplicationContext(), no.class);
        startActivity(Appointments);
    } else if (selectedFromList.equals("Mango")){
        Intent Logout = new Intent(getApplicationContext(), go.class);
        startActivity(Logout);
    } else if (selectedFromList.equals("Banana")){
        Intent Exit = new Intent(getApplicationContext(), low.class);
        startActivity(Exit);
    }
}
于 2013-08-27T22:01:57.377 に答える
0

これを試してみてください、それはあなたを助けるでしょう.

   listView1.setOnItemClickListener(new OnItemClickListener() {

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

        //global variable
        idItem = (int) id;

        switch (idItem) {

       case 0:
      // This is your first Item

      // Add your Intent and startActivity
   break;

       case 1:
   // Add your Intent and startActivity
   break;

       case 2:
   // Add your Intent and startActivity

   break;

       case 3:
   // Add your Intent and startActivity

   break;
       }

        }
    });

クリックした項目の ID を取得します。次に、このアイテムに必要な適切なアクティビティに移動できます。それが役に立てば幸い。

于 2013-08-28T06:44:11.483 に答える
0

これを試して

ListView1.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
 TextView textView = (TextView) arg1;
String strText = textView.getText().toString();
       if ("Helo".equals(strText)){
           Intent CurrentWaitTime = new Intent(getApplicationContext(), go.class);
           startActivity(CurrentWaitTime);
    } else if ("Apple".equals(strText){
            Intent Appointments = new Intent(getApplicationContext(), no.class);
            startActivity(Appointments);
        } etc, etc
于 2013-08-27T22:04:50.897 に答える