【问题标题】:Listview opening activity after a ToastToast 之后的 Listview 打开活动
【发布时间】:2014-06-09 07:43:52
【问题描述】:

如何使单击列表视图上的项目打开另一个活动。例如,如果我单击 France,它应该会显示 toast 并打开我的 france.java 活动。这只是为了测试和体验,因为我还在学习如何正确布局或?格式代码。

public class weapons extends Activity {
  ListView list;
  String[] web = {
      "Brazil",
      "France",
      "Japan",
      "USA",
      "Russia"
  } ;
  Integer[] imageId = {
      R.drawable.brazil,
      R.drawable.france,
      R.drawable.japan,
      R.drawable.usa,
      R.drawable.russia,
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.weapons);
    CustomList adapter = new
        CustomList(weapons.this, web, imageId);
    list=(ListView)findViewById(R.id.list22);
        list.setAdapter(adapter);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    Toast.makeText(weapons.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show();
                    }
            });
  }
}

谢谢。

【问题讨论】:

  • 有什么问题?使用意图开始活动,
  • 这不是 SO 的问题。我奶奶可以在一分钟内在 google 或 SO 上找到答案,你可以吗?

标签: android listview android-activity


【解决方案1】:
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
String clicked=(String) parent.getItemAtPosition(position);
switch(clicked){
case "Brazil":
Toast.makeText(weapons.this, "You Clicked at "+clicked, Toast.LENGTH_SHORT).show();
 Intent intent = new Intent(this, Brazil.class);
startActivity(intent);
break;
case "France":
Toast.makeText(weapons.this, "You Clicked at "+clicked, Toast.LENGTH_SHORT).show();
 Intent intent = new Intent(this, France.class);
startActivity(intent);
default:
break;}
                    }
            });

【讨论】:

    【解决方案2】:

    使用 Intent 启动 Activity 在 onItemClick 中使用以下代码

    Intent intent = new Intent(this, YourNextActivity.class);
    startActivity(intent);
    

    【讨论】:

      【解决方案3】:

      您可以在onItemClick开始新的活动

      @Override
      public void onItemClick(AdapterView<?> parent, View view,
                                          int position, long id) {
                      Toast.makeText(weapons.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show();
      Intent intent = new Intent(weapons.this, NewActivity.class);
      startActivity(intent);
                      }
      

      【讨论】:

        【解决方案4】:

        看看这个。

           mlistView.setOnItemClickListener(new OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {
                          // When clicked, show a toast with the TextView text Game, Help, Home
                          Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
                              Toast.LENGTH_SHORT).show();
                         Intent intent = new Intent(this, Activity.class);
        startActivity(intent);
        
                      });
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
        

        【讨论】:

          【解决方案5】:

          使用以下代码:

           @Override
              public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                      long arg3) {
          
                  TextView tv = (TextView) arg1.findViewById(R.id.txt);
                  String str = tv.getText().toString().trim();
          
                  if (str.equals(web[0])) {
                      Intent int0 = new Intent(weapons.this, Brazil.class);
                      startActivity(int0);
                  }else if(str.equals(web[1])) {
                      Intent int1 = new Intent(weapons.this, France.class);
                      startActivity(int1);
                  }else if(str.equals(web[2])) {
                      Intent int2 = new Intent(weapons.this, Japan.class);
                      startActivity(int2);
                  }else if(str.equals(web[3])) {
                      Intent int3 = new Intent(weapons.this, USA.class);
                      startActivity(int3);
                  }else if(str.equals(web[4])) {
                      Intent int1 = new Intent(weapons.this, Russia.class);
                      startActivity(int1);
                  } 
          }
          

          【讨论】:

            【解决方案6】:

            使用此代码

            Toast.makeText(this, "your message", Toast.LENGTH_LONG).show();  
            
            (new Handler())
                .postDelayed(
                new Runnable() {
                public void run() {
                     Intent intent = new Intent(this, Activity.class);
                      startActivity(intent);
                }
                }, timeInMillisecondTheToastIsShowingFor);
            

            【讨论】:

              猜你喜欢
              • 2021-03-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-02-26
              • 2018-10-08
              • 2017-10-15
              • 2018-06-11
              相关资源
              最近更新 更多