1
button = new Button (this);
button.setText("Insert values");
tableLayout.addView(secondo);

button.setOnClickListener(new OnClickListener(){
    public void onClick(View arg0) {
        for(int i = 0; i < r1; i++){
            for(int j = 0; j < c1;  j++){
                //insert values from a matrix of edittext in array      
                array[t] = Integer.parseInt(values[i][j].getText().toString()); 
                t++;
            }
        }
    }       
});

入力値が正しくない場合にアプリがクラッシュするため、このコードに edittext による値の入力のコントロールを入れたいと思います。ありがとう

4

3 に答える 3

2
try {
    for(int i = 0; i < r1; i++){
        for(int j = 0; j < c1;  j++){
            //insert values from a matrix of edittext in array
            array[t] = Integer.parseInt(values[i][j].getText().toString());
            t++;
        }
    }
}
catch(NumberFormatException nfe) {
    AlertDialog.Builder builder;
    builder = new AlertDialog.Builder(MyActivityClassName.this);
    builder.setTitle("Error");
    builder.setMessage("Wrong input format"); 
    builder.setIcon(android.R.drawable.ic_dialog_alert);
    builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    builder.show();
}
于 2012-04-22T17:04:58.790 に答える
2

これに対処するには、次の 2 つの方法があります。

ユーザーが間違った入力を入力できないようにするもの。EditText の入力タイプを設定すると、入力が事前定義されたタイプの 1 つである場合に役立ちます。それでも不十分な場合は、TextView の addTextChangedListenerを試すことができます。EditText拡張するのでTextView、上にも使用できますEditText

次に、ユーザーがボタンを押した後に有効性を確認する場合は、入力が無効であることを確認する必要があります。使用していない場合は、showDialogを呼び出してハンドラーNumberFormatExceptionでユーザーにダイアログを表示できますフラグメントを使用している場合は、フラグメントとDialogFragment 。onClick

于 2012-04-22T17:06:54.577 に答える
1

これを試して

final EditText enterABC = (EditText) findViewById(R.id.userinput_no_edittext);
Button okButton = (Button) findViewById(R.id.userinput_ok_button);
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// read from EditText when user presses OK button
    mVariable = enterABC.getText().toString();
 }
});

コードに従って問題が発生した場合は、コメントを残してください。

于 2012-04-22T16:58:58.293 に答える