单页中的多个按钮将每个按钮导航到android studio中的不同页面

时间:2015-10-28 17:56:56

标签: java android android-layout

请在android studio中解决这个问题,我是应用程序开发的新手。 我想在一个页面中创建3个按钮,并将每个按钮导航到每个不同的页面。 我需要java的代码,即“Mainactivity.java” 我已经声明了3个按钮ID 我在app清单中设置了所有内容。 我能够一次只导航单个按钮,但我如何安排所有三个导航按钮?

公共类MainActivity扩展AppCompatActivity实现了View.OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button buttonWRGL = (Button)findViewById(R.id.buttonWRGL);
    Button buttonHNK = (Button)findViewById(R.id.buttonHNK);
    Button buttonKZP = (Button)findViewById(R.id.buttonKZP);

    buttonWRGL.setOnClickListener(this);
    buttonHNK.setOnClickListener(this);
    buttonKZP.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.buttonWRGL:

            break;
        case R.id.buttonHNK:
            break;
        case R.id.buttonKZP:
            break;
    }
}

}

1 个答案:

答案 0 :(得分:0)

您的问题似乎不清楚,但我想您是在询问如何通过点击按钮加载其他布局/活动/片段。

嗯,这取决于你想要做的三个动作中的哪一个:

1)为了加载另一个布局,您需要在视图中为新布局充气;为此,您需要清除实际布局并为新布局充气。 这是一些示例代码:

//you may change it to whichever layout you used
LinearLayout ll = (LinearLayout) findViewById(R.id.mainLayout);

//remove previous view
ll.removeAllViews();

//set the new view
setContentView(R.layout.new_layout);

2)如果你想开始一个新的活动,你需要使用一个Intent并加载它。 示例代码:

//create the new intent; it will refer to the new activity
Intent intent = new Intent(this, NewActivity.class);

//pass any data to the new activity; cancel this line if you don't need it
intent.putExtra(extra_title, extra)

//start the new activity
startActivity(intent);

3)如果您想要更改片段,则需要执行事务。 示例代码:

//create the new fragment
Fragment newFragment = new MyFragment();

//start a fragment transaction
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

//replace the old fragment with the new
transaction.replace(R.id.frame, newFragment).commit();

希望这会有所帮助;如果没有,请尝试编辑您的问题,以澄清您的意思。

修改

你应该为每个按钮添加一个新的OnClickListener,但我会做的与你现在做的不同。 我会做这样的示例代码:

buttonWRGL.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(this, NewActivity1.class);
        startActivity(intent);
    }
});

对于每个按钮。在这段代码中,我直接将一个特定的OnClickListener附加到按钮;它将包含您需要的意图。 您可以在每个按钮中复制此项,甚至是10k按钮,您只需要使用要启动的活动更改intent声明中的活动名称。