gpt4 book ai didi

java - Android:如何将空的 EditText 字段排除在随机计数之外?

转载 作者:行者123 更新时间:2023-11-29 05:02:54 24 4
gpt4 key购买 nike

我正在开发这个有五个 EditText 的 Android 应用程序第一个 Activity 中的字段。

用户可以填写任意EditText他们想要的字段,然后按 Button ,他们将在单个 TextView 上获得随机答案在第二个 Activity 中。

例如,如果用户填写 2 EditText字段,空字段仍然是随机计数的一部分。

此外,每当用户随机填写 EditText字段(示例:choiceThreechoiceFour),没有任何内容会传递给第二个 Activity

谁能帮帮我?谢谢!

代码如下:

MainActivity.java

public class MainActivity extends Activity implements OnClickListener {

EditText choiceOne;
EditText choiceTwo;
EditText choiceThree;
EditText choiceFour;
EditText choiceFive;
Button mainButton;

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

choiceOne = (EditText) findViewById(R.id.inputOne);
choiceTwo = (EditText) findViewById(R.id.inputTwo);
choiceThree = (EditText) findViewById(R.id.inputThree);
choiceFour = (EditText) findViewById(R.id.inputFour);
choiceFive = (EditText) findViewById(R.id.inputFive);

mainButton = (Button) findViewById(R.id.inputButton);
mainButton.setOnClickListener(this);




}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public void onClick(View view)
{

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

if(choiceOne.getText().toString() != null && !choiceOne.getText().toString().trim().equals(""))
{
intent.putExtra("choiceOne", choiceOne.getText().toString());
}

if(choiceTwo.getText().toString() != null && !choiceTwo.getText().toString().trim().equals(""))
{
intent.putExtra("choiceTwo", choiceTwo.getText().toString());
}

if(choiceThree.getText().toString() != null && !choiceThree.getText().toString().trim().equals(""))
{
intent.putExtra("choiceThree", choiceThree.getText().toString());
}

if(choiceFour.getText().toString() != null && !choiceFour.getText().toString().trim().equals(""))
{
intent.putExtra("choiceFour", choiceFour.getText().toString());
}

if(choiceFive.getText().toString() != null && !choiceFive.getText().toString().trim().equals(""))
{
intent.putExtra("choiceFive", choiceFive.getText().toString());
}

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();


}
}

SecondActivity.java

public class SecondActivity extends Activity {

TextView answerDisplay;

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

answerDisplay = (TextView) findViewById(R.id.display);


Intent intent = getIntent();
String[] choice = {intent.getStringExtra("choiceOne"), intent.getStringExtra("choiceTwo"),
intent.getStringExtra("choiceThree"), intent.getStringExtra("choiceFour"),
intent.getStringExtra("choiceFive")};
int choiceRandom = (int) (Math.random()*intent.getExtras().size());

answerDisplay.setText(choice[choiceRandom]);

}

最佳答案

EditText 中没有输入时,它不会将 getText 返回为 null,而是返回 ""

并且在 MainActivity 中,使用 ArrayList 而不是数组.. 让您可以选择使用各种方法,包括添加和删除。

String choiceX = intent.getStringExtra("choiceX");
if(!choiceX.equals("")) {
choice.add(choiceX);
}

对于每一个选择。这是我能看到的最好和最简单的方法.. :)

关于java - Android:如何将空的 EditText 字段排除在随机计数之外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com