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();
     }  

当我单击该项目时,它会在第一个视图中显示字符串。但我不会进入第二个视图。当我单击其他项目时,在第一次查看时,它仍然显示第一个输出。

即,如果我在第一个视图中选择 Aries 它会在 toast 窗口中显示白羊座,但不会转到第二个视图。我再次按下其他项目说金牛座,但它仍然向我显示白羊座。

4

2 回答 2

1

我认为您对 ViewFlipper 控件有误解。

通过这一行:ViewFlipper viewflipper= (ViewFlipper) findViewById(R.id.viewflipper);,您只是启动 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

You need to compare strings with the .equals method, not by ==. Your temp is "Aries" but it is a different string than the one you are testing for equality against so your temp == "Aries" returns false. You need to write it temp.equals("Aries").

于 2011-02-04T10:16:42.940 回答