如何从主菜单屏幕打开活动

时间:2013-12-14 21:02:31

标签: android eclipse

这是我使用的代码,但当我点击任何按钮 ProfileHandler& calculateHandler不工作唯一改变的是活动的名称,但它保留在MainActivity屏幕

    public void ProfileHandler(View view){

    Intent Intent=new Intent (MainActivity.this, ProfileMainActivity.class);
    startActivity(Intent);
}

    public void new_profile_handler(View view){
    Intent Intent=new Intent(MainActivity.this, NewProfileMainActivity.class);
    startActivity(Intent);
}
     public void add_activity_handler(View view){
        Intent Intent=new Intent(MainActivity.this, InputUserActivity.class);
    startActivity(Intent);
}

    public void View_Activities_Handler(View view){

 Intent Intent=new Intent(MainActivity.this, ViewAllActsActivity.class);
    startActivity(Intent);
}



public void calculateHandler(View view){
    Intent Intent=new Intent(MainActivity.this, CalculateMainActivity.class);
    startActivity(Intent);
}

public void Goal_Handler(View view){
    Intent Intent=new Intent(MainActivity.this, GoalMainActivity.class);
    startActivity(Intent);
}

1 个答案:

答案 0 :(得分:0)

你应该使用camelCasedNamingConvention而不是随机混合camelCase和underscored_naming

为什么要将视图传递给这些方法,因为你没有在它们中使用它?

您确定在这些活动中指定了有效且定义明确的内容布局吗?

setConentView(R.layout.some_activity) - 这应该指向您在布局文件夹中指定的其他xml文件。

我不知道你如何调用这些方法,但你可以使用SWITCH语句,或者如果你有switch语句的问题,你可以尝试多个if / else语句,如下所示:

import android.view.View.OnClickListener;

public class MyClass extends Activity implements OnClickListener{
private Button buttonOne;
private Button buttonTwo;

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        buttonOne = (Button) findViewById(R.id.buttonOne);
        buttonTwo = (Button) findViewById(R.id.buttonTwo);
        buttonOne.setOnClickListener(this);
        buttonTwo.setOnClickListener(this);


}

@Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.buttonOne) {
            Intent startActivityOne = new Intent (MyClass.this, ActivityOne.class);
                        startActivity(startActivityOne);
        } else if (id == R.id.buttonTwo) {
            Intent startActivityTwo = new Intent (MyClass.this, ActivityTwo.class);
                        startActivity(startActivityTwo);            
        }
}

并在ActivityOne课程中你应该:

    setContentView(R.layout.activity_one);
在ActivityTwo中你应该

    setContentView(R.layout.activity_two);

是您在布局文件夹中定义的不同xml文件。

注意:在Java中,它首选使用camelCase,但是使用Android中的xml文件,你应该使用underscored_names并避免在那里放数字。