我基本上正在开发一个小型数学应用程序,在一个活动中他们将会出现诸如减法等问题。用户必须从0-9的自定义按钮填充edittext中的答案,点,斜杠按钮和我在同一个活动上创建的退格键。现在我想添加向上和向下按钮,这样当按下向上按钮时,光标必须向上移动编辑文本,反之亦然。
这是我使用的示例代码
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@android:id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Some string of text"
/>
<EditText
android:id="@android:id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Some string of text"
/>
<Button
android:id="@android:id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
/>
</LinearLayout>
类别:
public class Example extends Activity {
TextView et1;
TextView et2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1 = (EditText) findViewById(android.R.id.et1);
et2 = (EditText) findViewById(android.R.id.et2);
Button button = (Button) findViewById(android.R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Selection.setSelection((Editable) et2.getText(), et1.getSelectionStart());
et2.requestFocus();
}
});
}
}
答案 0 :(得分:0)
您可以创建一个EditTexts数组和一个包含当前位置的变量,默认为0,表示第一个文本框。然后,如果用户按下向上按钮,如果变量大于0,则设置位置-1,然后从数组中获取文本框对象并调用focus()。下面是一段示例代码,它不准确,但应该让你开始
List<EditText> textfields = null;
int currentTextFieldPosition = 0;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
textfields = new ArrayList<EditText>();
textfield1 = (EditText)findViewById(R.id.textfield1);
.....
textfields.add(textfield1);
......
}
protected OnClickListener mBtnUpClickListener = new OnClickListener()
{
public boolean onClick()
{
if (currentTextfieldPosition > 0)
{
currentTextfieldPosition--;
textfields.get(currentTextFieldPosition).focus()
}
}
}