为什么我的变量递减?(Why is my variable decrementing?)
while(i < numCourses){
final int index = i;
//Create a Dialog
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.input_dialog);
TextView textView = (TextView) dialog.findViewById(R.id.textView4);
textView.setText("" + i);
dialog.show();
//Button for the dialog.
Button b = (Button) dialog.findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Get input Course Numbers, numCourses times
EditText editText = (EditText) dialog.findViewById(R.id.editText2); //EditText
String getInput = editText.getText().toString(); //String input
try {
courseNumbers[index] = Integer.parseInt(getInput);
Toast.makeText(MainActivity.this, "" + courseNumbers[index], Toast.LENGTH_SHORT).show();
}catch (Exception ex){}
//Dismiss dialog
dialog.dismiss();
}
});
i++;
}
这是我的变量int = i出现在Dialog中,假设numCourses是4:
3 2 1 0我的问题是为什么向后递减,而不是从0递增到3。为了从对话框接收一组输入,我怎样才能有效地请求输入,numcourses时间? 而不是我有一个while循环和增加我,我觉得效率不高。
while(i < numCourses){ final int index = i; //Create a Dialog final Dialog dialog = new Dialog(MainActivity.this); dialog.setContentView(R.layout.input_dialog); TextView textView = (TextView) dialog.findViewById(R.id.textView4); textView.setText("" + i); dialog.show(); //Button for the dialog. Button b = (Button) dialog.findViewById(R.id.button); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Get input Course Numbers, numCourses times EditText editText = (EditText) dialog.findViewById(R.id.editText2); //EditText String getInput = editText.getText().toString(); //String input try { courseNumbers[index] = Integer.parseInt(getInput); Toast.makeText(MainActivity.this, "" + courseNumbers[index], Toast.LENGTH_SHORT).show(); }catch (Exception ex){} //Dismiss dialog dialog.dismiss(); } }); i++; }This is what my variable int = i shows up in the Dialog, suppose numCourses was 4:
3 2 1 0My question is why is decrementing backwards, instead of incrementing forward from 0 to 3. And to receive an array of inputs from a dialog, how can I efficiently ask for input, numCourses times? Instead of me having a while loop and incrememnting i, which I feel is not efficient.
最满意答案
单击每个输入后,不使用循环,然后显示下一个对话框。
public void showCourseDialog(final int i, final int numCourses){ final int index = i; //Create a Dialog final Dialog dialog = new Dialog(MainActivity.this); dialog.setContentView(R.layout.input_dialog); TextView textView = (TextView) dialog.findViewById(R.id.textView4); textView.setText("" + i); dialog.show(); //Button for the dialog. Button b = (Button) dialog.findViewById(R.id.button); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Get input Course Numbers, numCourses times EditText editText = (EditText) dialog.findViewById(R.id.editText2); //EditText String getInput = editText.getText().toString(); //String input try { courseNumbers[index] = Integer.parseInt(getInput); Toast.makeText(MainActivity.this, "" + courseNumbers[index], Toast.LENGTH_SHORT).show(); }catch (Exception ex){} //Dismiss dialog dialog.dismiss(); if(i < numCourses) showCourseDialog(++i, numCourses); } }); }Not using loop, after each input has been clicked, then show the next dialog.
public void showCourseDialog(final int i, final int numCourses){ final int index = i; //Create a Dialog final Dialog dialog = new Dialog(MainActivity.this); dialog.setContentView(R.layout.input_dialog); TextView textView = (TextView) dialog.findViewById(R.id.textView4); textView.setText("" + i); dialog.show(); //Button for the dialog. Button b = (Button) dialog.findViewById(R.id.button); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Get input Course Numbers, numCourses times EditText editText = (EditText) dialog.findViewById(R.id.editText2); //EditText String getInput = editText.getText().toString(); //String input try { courseNumbers[index] = Integer.parseInt(getInput); Toast.makeText(MainActivity.this, "" + courseNumbers[index], Toast.LENGTH_SHORT).show(); }catch (Exception ex){} //Dismiss dialog dialog.dismiss(); if(i < numCourses) showCourseDialog(++i, numCourses); } }); }更多推荐
发布评论