1

次の点で問題があります。

public void onItemClick(AdapterView<?> a, View v, int position, long id) {
    temp=a.getItemAtPosition(position).toString();
    Toast.makeText(ne.this, temp, Toast.LENGTH_SHORT).show();

     if (temp=="Aries")
     {
         ViewFlipper  viewflipper= (ViewFlipper) findViewById(R.id.viewflipper);
        Toast.makeText(ne.this, temp, Toast.LENGTH_SHORT).show();
     }  
     if (temp=="Taurus")
     {
         ViewFlipper  viewflipper= (ViewFlipper) findViewById(R.id.viewflipper);
        Toast.makeText(ne.this, temp, Toast.LENGTH_SHORT).show();
     }
     if (temp=="Libra")
     {
         ViewFlipper  viewflipper= (ViewFlipper) findViewById(R.id.viewflipper);
        Toast.makeText(ne.this, temp, Toast.LENGTH_SHORT).show();
     }  

アイテムをクリックすると、最初のビューに文字列が表示されますが、2番目のビューには進みません。また、最初のビューで他のアイテムをクリックすると、最初の出力が表示されます。

つまり、最初のビューで牡羊座を選択すると、トースト ウィンドウに牡羊座が表示されますが、2 番目のビューには移動しません。もう一度、おうし座などの他のアイテムを押していますが、それでも牡羊座が表示されます。

4

2 に答える 2

1

ViewFlipper コントロールと誤解されていると思います。

この行によって: ViewFlipper viewflipper= (ViewFlipper) findViewById(R.id.viewflipper);、ビューフリッパーコントロールを開始するだけで、次または前のビューをロードするコマンドを与えていません。

つまり、それに応じて前または次のビューをロードする方法がshowPrevious()あります。showNext()

viewflipper.showPrevious()
viewflipper.showNext()

例えば:

そのようなものを実装する必要があります。これがあなたの質問に合っていることを願っています:

viewflipper = (ViewFlipper) findViewById(R.id.viewflipper);
listview = (ListView) findViewById(R.id.listview);


listview.setOnItemClickListener(new OnItemClickListener(){
  public void onItemClick(AdapterView<?> a, View v, int position, long id) {
     viewflipper.showNext();

});

この例を参照してください: ListView と ViewFlipper を使用して Android アプリでユーザーをナビゲートする方法は?

于 2011-02-04T10:50:14.490 に答える
0

==ではなく、.equalsメソッドを使用して文字列を比較する必要があります。tempは"Aries"ですが、同等性をテストしている文字列とは異なるため、temp=="Aries"はfalseを返します。temp.equals( "Aries")と書く必要があります。

于 2011-02-04T10:16:42.940 に答える