我是android的新手。当我点击第一个标签时,我有四个按钮。我希望用户先点击第一个按钮,而不是先点击其他按钮。所以需要禁用其他按钮,直到我点击第一个按钮,一旦点击第一个按钮,当用户返回时,需要启用所有按钮。我该怎么做呢?请帮忙!!
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v.getId() == R.id.imgbtn_details)
{
attendees_imgbtn.setEnabled(true);
resources_imgbtn.setEnabled(true);
contacts_imgbtn.setEnabled(true);
count = 1;
Intent detail_intent=new Intent(getActivity().getApplicationContext(),DetailsActivity.class);
detail_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(detail_intent);
}
else if(v.getId() == R.id.imgbtn_attendees && count == 0)
{
if(count == 1)
{
Intent attendee_intent = new Intent(getActivity().getApplicationContext(),AttendeesActivity.class);
attendee_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(attendee_intent);
}
else
{
attendees_imgbtn.setEnabled(false);
resources_imgbtn.setEnabled(false);
contacts_imgbtn.setEnabled(false);
}
}
else if(v.getId() == R.id.imgbtn_resources && count == 0)
{
if(count == 1)
{
Intent resources_intent = new Intent(getActivity().getApplicationContext(),ResourcesActivity.class);
resources_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(resources_intent);
}
else
{
attendees_imgbtn.setEnabled(false);
resources_imgbtn.setEnabled(false);
contacts_imgbtn.setEnabled(false);
}
}
else if(v.getId() == R.id.imgbtn_contacts && count == 0)
{
if(count == 1)
{
Intent contact_intent = new Intent(getActivity().getApplicationContext(),ContactsActivity.class);
contact_intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(contact_intent);
}
else
{
attendees_imgbtn.setEnabled(false);
resources_imgbtn.setEnabled(false);
contacts_imgbtn.setEnabled(false);
}
}
}
答案 0 :(得分:1)
使用setEnable(true)
按钮启用和禁用按钮
答案 1 :(得分:0)
试试这段代码:
Public static boolean enable_buttons = false;
if(enable_buttons == false){
button2.setEnable(false);
button3.setEnable(false);
button4.setEnable(false);
}else{
button2.setEnable(true);
button3.setEnable(true);
button4.setEnable(true);
}
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
button2.setEnable(true);
button3.setEnable(true);
button4.setEnable(true);
enable_buttons = true;
}
}
答案 2 :(得分:0)
定义一个静态布尔变量wasClicked ....如果but1被点击make变量为true,否则为false ...覆盖此方法....当用户返回时,它将首先检查启用或禁用为1st但是被点击或者不
@Override
protected void onResume() {
// TODO Auto-generated method stub
if(!wasClicked){
but2.setClickable(false);
but3.setClickable(false);
but4.setClickable(false);
}else{
but2.setClickable(true);
but3.setClickable(true);
but4.setClickable(true);
}
}
答案 3 :(得分:0)
我认为您需要传递变量,指定您是否要启用按钮。
第一次,将其传递给:
Intent intent = new Intent (this, NextAct.class);
intent.putExtra ("ENABLE", "No");
如果要启用按钮,请将字符串传递为是:
Intent intent = new Intent (this, NextAct.class);
intent.putExtra ("ENABLE", "YES");
然后在NextAct类中检查此字符串。
Intent intent = getIntent();
String enableBtn = intent.getStringExtra("ENABLE");
if (enableBtn != null && enableBtn.equalsIgnoreCase("YES")) {
button2.setEnabled(true);
button3.setEnabled(true);
button4.setEnabled(true);
} else {
button2.setEnabled(false);
button3.setEnabled(false);
button4.setEnabled(false);
}
因此,只有在您需要时才能启用按钮。
希望有所帮助。