基本的にすべてのフォーム コンポーネントを含むアクティビティがあります。以前は、組み込みのカメラのアプリを使用して画像をクリックして保存する機能を追加するまで、EditText ボックスにいくつかの基本的なテキスト フィルタリングが適用されていました。
現在、「写真を撮る」部分は正常に機能していますが、最初の 2 つの Edittext ボックスに提供された入力はフィルタリングされていません。
ここで何か不足していますか?
また、アクティビティの onCreate メソッドは setonclick リスナーを 1 つしか持つことができないようなものですか?
ありがとう..
これが私の活動のコードです:
public class Ques1 extends Activity {
private EditText outletEdit;
private EditText ownerEdit;
private EditText phone1Edit;
private EditText phone2Edit;
private EditText phone3Edit;
private EditText phone4Edit;
private EditText cityEdit;
private EditText stateEdit;
private EditText MrktAreaEdit;
private RadioButton ownVehYes;
private RadioButton ownVehNo;
private static int TAKE_PICTURE = 1;
private Uri outputFileUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ques1);
Button outletPic = (Button) findViewById(R.id.Button01_outletpic);
outletPic.setOnClickListener(new View.OnClickListener() {
public void onClick(View v2) {
TakePhoto();
}
});
//CUSTOM INPUTFILTER HERE 2.0
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source instanceof SpannableStringBuilder) {
SpannableStringBuilder sourceAsSpannableBuilder = (SpannableStringBuilder)source;
for (int i = end - 1; i >= start; i--) {
char currentChar = source.charAt(i);
if (!Character.isLetter(currentChar) && !Character.isSpaceChar(currentChar)) {
sourceAsSpannableBuilder.delete(i, i+1);
}
}
return source;
} else {
StringBuilder filteredStringBuilder = new StringBuilder();
for (int i = 0; i < end; i++) {
char currentChar = source.charAt(i);
if (Character.isLetter(currentChar) || Character.isSpaceChar(currentChar)) {
filteredStringBuilder.append(currentChar);
}
}
return filteredStringBuilder.toString();
}
}
};
this.outletEdit = (EditText) findViewById(R.id.editText1_outlet);
this.outletEdit.setFilters(new InputFilter[]{filter});
this.ownerEdit = (EditText) findViewById(R.id.editText1_owner);
this.ownerEdit.setFilters(new InputFilter[]{filter});
//this.cityEdit = (EditText) findViewById(R.id.editText1_owner);
//this.cityEdit.setFilters(new InputFilter[]{filter});
// LENGTH INPUTFILTERS HERE
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(25);
this.outletEdit.setFilters(FilterArray);
this.ownerEdit.setFilters(FilterArray);
//ownVehYes.setOnClickListener = (RadioButton) findViewById(R.id.radio0);
this.ownVehYes = (RadioButton) findViewById(R.id.radio0);
this.ownVehNo = (RadioButton) findViewById(R.id.radio1);
OnClickListener own_veh_yes_listener = new OnClickListener (){
public void onClick(View v) {
final AlertDialog.Builder alert = new AlertDialog.Builder(Ques1.this);
alert.setTitle("How many?");
final EditText input = new EditText(Ques1.this);
//input.setFilters(FilterArray2); //need filter for "how many?..veh field"
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String howmany_veh_value = input.getText().toString().trim();
Toast.makeText(getApplicationContext(), howmany_veh_value, Toast.LENGTH_SHORT).show(); //test toast is here
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
ownVehNo.setChecked(true);
dialog.cancel();
}
});
alert.show();
}
};
ownVehYes.setOnClickListener(own_veh_yes_listener);
}
private void TakePhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "test.jpg");
outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_PICTURE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == TAKE_PICTURE && resultCode == Activity.RESULT_OK){
//ShowMessage(outputFileUri.toString());
if(data!=null){
Toast.makeText(getApplicationContext(), outputFileUri.toString(), Toast.LENGTH_SHORT).show();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_ques1, menu);
return true;
}
}