Cal*_*ess 1 java android android-edittext
我试图让用户在编辑文本中输入文本。当用户按下回车键时,我想从编辑文本中取出文本并将其添加到我的 ArrayList 中。我在从编辑文本控制 keyEvent 时遇到问题。
public class MainActivity extends Activity {
ArrayList<String> array_list;
ListAdapter lv;
ListView list;
EditText edittext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
array_list = new ArrayList<String>();
edittext = (EditText) findViewById(R.id.textView);
lv = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array_list);
list = (ListView) findViewById(R.id.lstView);
list.setAdapter(lv);
edittext.requestFocus();
edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_GO) {
array_list.add(edittext.getText().toString());
edittext.setText("");
edittext.requestFocus();
}
return handled;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
所以我需要做的是当用户按下回车键时,它从字段中获取文本并将其添加到一个数组列表中。然后它从文本字段中删除文本并再次为其提供焦点。
小智 5
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_GO) {
//Perform your Actions here.
}
return handled;
}
});
Run Code Online (Sandbox Code Playgroud)
在你中xml你做这样的事情:
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text|textUri"
android:imeOptions="actionGo"
android:imeActionId="666"
android:imeActionLabel="Some Label"
android:maxLines="1"/>
Run Code Online (Sandbox Code Playgroud)
关键xml是包含的行android:ime...