我正在尝试制作一个应用程序,并且我有不同类中按钮的代码。当我启动应用程序并单击第一个按钮时,它会将我带到该按钮所在的不同布局。但是当我单击此按钮时,它不会执行任何操作,只是显示一个小的单击动画。
第一个按钮代码:
public class TextAdd extends AppCompatActivity {
public static EditText Text;
public static Button Set;
public static String[] Checkagainst = new String[1000];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Text_Checker);
Text = (EditText) findViewById(R.id.LPN);
Set = (Button) findViewById(R.id.Set);
Set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String Text_Value = Text.getText().toString();
if (!Arrays.asList(Checkagainst).contains(Text_Value) && Text_Value.length() >= 1 && Text_Value.length() <= 7) {
setContentView(R.layout.add);
for (int i = 0; i < Checkagainst.length; i++) {
if (Checkagainst[i] == null) {
Checkagainst[i] = Text_Value;
break;
}
}
} else if (Arrays.asList(Checkagainst).contains(Text_Value) && Text_Value.length() >= 1 && Text_Value.length() <= 7) {
setContentView(R.layout.have);
}
}
});
}
}
第二个按钮代码:
public class Have extends AppCompatActivity {
private Button HaveBack;
private TextView Have;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.have);
HaveBack = (Button) findViewById(R.id.HaveBack);
Have= (TextView) findViewById(R.id.Have);
String Text_Value= TextAdd.License.getText().toString();
String Extra = Text_Value + " is already part of Your license plates";
Have.setText(Extra);
HaveBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.Text_Checker);
}
});
}
}
有人知道这是怎么回事吗?如果可以的话请帮帮我。
最佳答案
您应该在 onCreate()
方法中仅使用一次 setContentView()
。多次调用是不正确的。如果您想在当前布局上方显示一个小布局,则应该使用对话框,如果您想在所有内容上方显示完全不同的布局,则必须使用 Intents 转到另一个 Activity 并在该 Activity 中完成其余工作。
此外,在变量和对象名称的开头使用小写字母,类名称以大写字母开头。这就是了解什么是类、什么是对象的标准。例如
Button firstButton, secondButton;
关于java - 使用带有不同类内部代码的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575138/