Sri*_*har 7 android android-layout android-edittext android-spinner
在我的应用程序中,我有一个注册屏幕,有很多EditTexts和Spinners.我想逐一浏览"注册"字段.
所以我申请了android:imeOptions="actionNext".但它忽略了所有的Spinners.它将仅关注EditText.我也试过了setNextFocusDownId().这也忽略了纺纱厂.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/reportentry11"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/numbers"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="actionNext"
android:inputType="phone"
>
<requestFocus/>
</EditText>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/reportentry12"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/txt_exp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="EXP:"
android:textColor="#000000"
android:textSize="12dp" />
<Spinner
android:id="@+id/spin_date"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="3"
android:focusable="true"
android:focusableInTouchMode="true"
android:nextFocusDown="@+id/spin_year"
android:text="date"
android:textSize="12dp" />
<Spinner
android:id="@+id/spin_year"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="5dp"
android:nextFocusDown="@+id/cvc"
android:text="year"
android:textSize="12dp" />
</LinearLayout>
<EditText
android:id="@+id/cvc"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:hint="@string/reg_label_cvc"
android:imeOptions="actionNext"
android:inputType="phone" />
<EditText
android:id="@+id/fname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/reg_label_fname"
android:imeOptions="actionNext" />
<EditText
android:id="@+id/address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/reg_label_address"
android:imeOptions="actionNext" />
<EditText
android:id="@+id/city"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/reg_label_city"
android:imeOptions="actionNext"
android:nextFocusDown="@+id/pr_spin" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/reportentry13"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/txt_pr"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="PROV:"
android:textColor="#000000"
android:textSize="12dp" />
<Spinner
android:id="@+id/pr_spin"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="date"
android:imeOptions="actionNext"
android:textSize="14dp" />
<EditText
android:id="@+id/pcode"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:hint="@string/reg_label_pcode"
android:imeOptions="actionDone" />
</LinearLayout>
<Button
android:id="@+id/register_register_button"
android:layout_width="wrap_content"
android:background="@drawable/green_button_bg"
android:onClick="completeClicked"
android:text="@string/reg_label_complete"
android:textSize="28dp"
android:textStyle="bold" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
请为我提供触发纺纱厂的最佳方法.
在您的编辑文本上,覆盖onEditorAction并给予焦点(或执行任何操作,例如打开微调器)...
yourEditTXT.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionID, KeyEvent event) {
if (actionID == EditorInfo.IME_ACTION_NEXT) {
//do your stuff here...
return true;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
编辑12/4:截至昨晚,我发现您仍在为此问题苦苦挣扎,如果您没有找到解决方案(也未发布解决方案)或帮助其他可能阅读此解决方案的人,这可能会帮助您了解微调编辑文本。
mySpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parentview, View v, int position, long id) {
// your spinner proces code
// then when you are done,
yourEditText.setFocusableInTouchMode(true); //if this is not already set
yourEditText.requestFocus(); //to move the cursor
final InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); // this line and the one above will open the soft keyboard if it doesn't already open
}
public void onNothingSelected(AdapterView<?> arg0) { }
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6640 次 |
| 最近记录: |