app
的{{1}}包含6个MainActivity
字段和一个editText
。还有另外5个活动,名为button
,Activity2
等。现在,当用户在Activity3
字段中输入名称并按editText
时,{{1} }应该找出要填充的button
个字段的数量,然后打开活动名称中带有相应数字的活动。
示例:
app
,并说更多球员。editText
将打开toast
。app
将打开Activity2
,依此类推。现在,解决问题。我错过了一些东西,也找不到。这是MainActivity.java
app
}
日志显示了确切的数字,有些不正常...
答案 0 :(得分:1)
这里是您的点击监听器,为简洁起见,省略了switch
:
btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int filledFileds = countFilledFields(); Log.d("filled", String.valueOf(filledFileds)); Class newClass = MainActivity.class; switch (filledFileds){ ... } Intent intent = new Intent(MainActivity.this, newClass); }
问题就在最后:您创建了一个Intent
对象……但您并未对其进行任何操作。可能您刚刚忘记了一个startActivity()
通话:
Intent intent = new Intent(MainActivity.this, newClass);
startActivity(intent);
此外,回头看一看,您在用户仅输入一个EditText的情况下就遇到了问题。如所写,您仍将尝试启动一个新活动(您将只启动同一MainActivity的新副本,这可能是个坏主意)。更好的主意是仅在用户填写足够的EditTexts时开始新活动:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int filledFileds = countFilledFields();
Log.d("filled", String.valueOf(filledFileds));
Class newClass = null;
switch (filledFileds){
...
}
if (newClass != null) {
Intent intent = new Intent(MainActivity.this, newClass);
startActivity(intent);
}
}
答案 1 :(得分:1)
您缺少一件事:
startActivity(intent);