0

ListView には 2 つの TextViews (t1、t2 など) が含まれており、その ListView は xml によって作成され、Activity で膨張します。
私の要件は、ユーザーが t1 を含む ListView アイテムをクリックすると、新しいアクティビティが必要になり、t2 を含むアイテムをクリックすると別のアクティビティが開始されることです。
しかし、問題は、ListView アイテムのいずれかをクリックすると機能しないことです。どちらの場合も同じアクティビティに移動します。

私のコード(getView()メソッド内):

mylayout.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                try {
                    if (listType == 1) {
                        Log.v("active", "On Click " + (position));
                        Intent intent = new Intent(VoucherActiveScreen.this,MyVoucherDetailPage.class);
                        intent.putExtra("selectedIndex", position);
                        intent.putExtra("listType", listType);
                        startActivity(intent);
                    }
                    else if (listType == 3) {
                                 //String str = offerPrice.getText().toString();
                                 //System.out.println(str);
                                 if (voucherOffer.getIs_redeem().toString().equals("1"))
                                 {
                                    System.out.println(voucherOffer.getIs_redeem().toString()+"if Rate"); //its working when click listview which contains Rate

                                    Intent  intratedeal=new Intent(getBaseContext(),RateDeal.class);
                                    intratedeal.setClass(getBaseContext(), RateDeal.class);
                                    startActivityForResult(intratedeal, 1);
                                 }
                                 else
                                     {
                                     System.out.println(voucherOffer.getIs_redeem().toString()+"else View"); //its working when click listview which contains View
                                     Intent  intratevendor=new Intent(getBaseContext(),RateVendor.class);
                                     //intratevendor.setClass(getBaseContext(), RateVendor.class);
                                        startActivityForResult(intratevendor, 1);
                                     }
                             /*Intent intent = new Intent(
                                        VoucherActiveScreen.this,
                                        MyVoucherDetailPage.class);
                                intent.putExtra("listType", listType);
                                intent.putExtra("selectedIndex", position);*/
                                Log.v("inactiveeeeeeeeeeeeeeeeee", "On Click " + (position));

                                //startActivity(intent); 

                    }
                } catch (Exception e) {
                    // TODO: handle exception
                }
            }
        });

誰か助けてください...制御はif-elseブロックでうまくいきますが、意図は同じアクティビティをリダイレクトしません

4

1 に答える 1

0

次のようにインテントでフラグを設定できます。

Intent intent = new Intent(VoucherActiveScreen.this,MyVoucherDetailPage.class);
intent.putExtra("selectedIndex", position);
intent.putExtra("listType", listType);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

上記のスニペットは、新しいアクティビティ タスクを開始します。このリンクを参照してください:

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK

于 2012-04-19T07:36:46.807 に答える