我不能从主页跳到我项目的另一个活动

时间:2012-03-02 15:02:37

标签: android android-activity

我需要帮助完成我现在正在建设的第一个项目。

我的项目包含三项活动:

  • 第一个是主要的有两个按钮(第一个叫做Annonce而另一个叫做索引)。
  • 第二个活动被称为Annonce,与上面提到的按钮相同。
  • 第三项活动的名称与上述名称相同。

我想...... 当我从主要活动中点击Annonce按钮时,Android会将我带到第二个活动,与另一个按钮(索引)相同,当然我可以返回到主要活动。

我的main.Java文件是:

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 

        annonce = (Button)findViewById(R.id.Annonce); 
        index = (Button)findViewById(R.id.Index);

        annonce.setOnClickListener(this);
        index.setOnClickListener(this);
    } 

    public void onClick(View src) {
      Intent annonce = new Intent(this, Annonce.class);
      startActivity(annonce);
      Intent index = new Intent(this, Index.class);
      startActivity(index);
      finish();
    } 
}

7 个答案:

答案 0 :(得分:1)

你做什么的?您正在尝试按一个按钮跳转到2页。你应该删除一个Intent和你的第二个错误,你正试图跳到Bottons - 它有趣=)

答案 1 :(得分:0)

你很近,但onClick代码可能存在问题。

试试这个而不是你拥有的东西:

public void onClick(View src) {
  if (src == annonce){
      Intent annonce = new Intent(this, Annonce.class);
      startActivity(annonce);
  }else if (src == index){
      Intent index = new Intent(this, Index.class);
      startActivity(index);
  }
} 

两个更改:IF / Else语句确定推送了哪个视图(您尝试启动两个活动,但您只想根据哪个按钮启动一个)。另外,不要在这里调用finish()。你在这里不需要它,那条线会杀死你的应用程序!

此外,将来发布更多有关正在发生的事情的信息!我假设应用程序关闭时按任何按钮(因为该调用完成())但下次告诉我们!

答案 2 :(得分:0)

你错误的创建OnClickListener

写下这段代码:

OnClickListener annonceBtnClick= new OnClickListener() {
       @Override
       public void onClick(View v) {
         // TODO Auto-generated method stub
          Intent annonce = new Intent(getApplicationContext(), Annonce.class);
          startActivity(annonce);
       }
     };

与索引按钮

相同

答案 3 :(得分:0)

一些事情:

  • 在您为新活动提供机会之前,您正在完成主要活动。除非您确实要退出活动,否则无需致电finish()
  • 你正试图同时开展两项活动。

如果要设置点击处理程序,则需要确保所点击的视图是您打开活动的视图。

这意味着

public void onClick (View src) {
    switch (src.getId()) {
    case R.id.annonce_button:
        startActivity(new Intent("com.myPackage.myActivity");
        break;
    case R.id.index_button:
        startActivity(new Intent("com.myPackage.myIndexActivity");
        break;
    }
}

您点击的每个ID都有一个案例,确保您只是为正确的按钮点击启动活动。

当然,上面的代码假定您已在按钮上设置了ID。这样,这些ID与R.id.XXXXXXX匹配,您可以使用它们进行快速检查。

答案 4 :(得分:0)

我会更新main.xml文件并将这些行添加到按钮:

android:clickable="true"
android:onClick="annonce_button_handler"

android:clickable="true"
android:onClick="index_button_handler"

然后我会在我的主Activity中创建这些方法,如下所示:

public void annonce_button_handler(){
    Intent annonce = new Intent(this, Annonce.class);
    startActivity(annonce);
}

public void index_button_handler(){
    Intent index = new Intent(this, Index.class);
    startActivity(index);
}

这将允许您拥有一个不实现onClickListener的活动,并且仍允许您在代码中实现多个可单击的内容。顺便说一句,这应该适用于放在.xml文件中的几乎任何元素。

希望这有帮助!

答案 5 :(得分:0)

可能为时已晚......但仍想添加

别忘了在Manifest中添加你的两个Activity

答案 6 :(得分:0)

我希望您创建了自己的活动并注册了清单文件。

现在: -

    @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 

            annonce = (Button)findViewById(R.id.Annonce); 
            index = (Button)findViewById(R.id.Index);

            annonce.setOnClickListener(this);
            index.setOnClickListener(this);
        } 

        public void onClick(View src)
          {

              if(src == annonce )
              {
                    //start activity here
                   Intent intent1 = new Intent(this,activityToSwitch);
                   startactivity(intent1);
              }
                if(src == index)
              {
                    //start activity here
                   Intent intent2 = new Intent(this,activityToSwitch);
                   startactivity(intent2);
              }

         }