在不同类中使用带有代码的按钮
Posted
技术标签:
【中文标题】在不同类中使用带有代码的按钮【英文标题】:Using a button with the code inside of a different class 【发布时间】:2019-01-05 14:13:32 【问题描述】:我正在尝试制作一个应用程序,并且我有一个不同类内的按钮的代码。当我启动我的应用程序并单击第一个按钮时,它会将我带到按钮所在的不同布局。但是当我点击这个按钮时,它什么也没做,只是一点点向下的动画。
第一个按钮代码:
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);
);
有谁知道怎么回事?如果可以,请帮帮我。
【问题讨论】:
没有人可能知道出了什么问题,因为您没有提供任何代码。这就像打电话给机械师,说我的车无法启动,请修理它。他们充其量只是猜测。您应该提供minimal reproducible example,我们或许可以为您提供帮助。 我通过将代码放入其中来更改问题。 【参考方案1】:您应该在onCreate()
方法中只使用一次setContentView()
。多次调用它是不正确的。如果你想在当前布局之上显示一个小布局,你应该使用一个对话框,如果你想在所有内容之上显示一个完全不同的布局,你必须使用 Intents 去另一个活动并完成剩下的工作一个。
此外,在变量和对象名称的开头使用小写字母,并以大写字母开头的类名称。这是了解什么是类和什么是对象的标准。例如
Button firstButton, secondButton;
【讨论】:
如果我的 setcontentviews 在不同的类中也是一样的 @JohnPaulsetContentView();
应该在每个活动中只调用一次以指定活动的布局文件。所以从单独的活动中调用它没有问题。
是的。我相信我正在这样做,但如果我错了,请纠正我。我在不同的类中为 2 种不同的布局调用 setcontentview。
好吧,我可以看到你在TextAdd
Activity 的开头调用了一次setContentView();
,另一次是在 Set 上调用的onClickListener
。这意味着通过单击设置,SetContentView()
在您的活动中被调用两次。除此之外,我看不到您在您的范围内定义了 Set
的位置。我的意思是,如果这是一个按钮,您应该在其中一个实例上使用 setOnClickListener()
。
什么是实例?对不起,我是 android studio 的新手。以上是关于在不同类中使用带有代码的按钮的主要内容,如果未能解决你的问题,请参考以下文章