小编erd*_*inz的帖子

将焦点设置在EditText上

我有一个EditText-Field并为它设置一个OnFocusChangeListener.当它失去焦点时,会调用一个方法,该方法使用数据库中的一个方法检查EditText的值.如果方法的返回值为true,则显示toast,焦点应再次返回EditText.焦点应始终返回EditText并且键盘应该显示,直到方法的返回值为false.

编辑:我想,我还没有完全清楚我的真正问题:屏幕上没有其他项目应该能够编辑,直到EditText的值被编辑为一个值,这使得方法"checkLiganame(liganame) "回归虚假.只有EditText-Field应该是可编辑的.

这是我的代码(这对我不起作用):

final EditText Liganame = (EditText) findViewById(R.id.liganame);

    Liganame.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {

                String liganame = Liganame.getText().toString();


                if (checkLiganame(liganame)) {
                    Toast toast = Toast.makeText(CreateTableActivity.this,
                            "Dieser Liganame ist bereits vergeben",
                            Toast.LENGTH_SHORT);
                    toast.show();
                    Liganame.requestFocus();
                }
            }
Run Code Online (Sandbox Code Playgroud)

和方法:

public boolean checkLiganame(String liganame) {
    boolean found = false;

    DatabaseHelper databaseHelper = new DatabaseHelper(this);
    SQLiteDatabase db = databaseHelper.getReadableDatabase();

    Cursor cursor = db.query("liga", new String[] { "liganame" },
            "liganame = '" + liganame + "'", …
Run Code Online (Sandbox Code Playgroud)

android focus android-edittext

161
推荐指数
9
解决办法
34万
查看次数

迭代ListView并获取EditText-Field值

我创建了一个ListView(myList),每行有一个EditText-Field(R.id.mannschaften).在ListView下,我创建了一个Button,并在OnCreate() - Method中为它设置了一个OnClickListener.现在,当单击Button时,我想迭代ListView并获取每行中EditText-Field的值并将它们保存在String-List中.但是我该怎么做?

这是我的代码:

private void ButtonClick() {
    /** get all values of the EditText-Fields */
    View v;
    ArrayList<String> mannschaftsnamen = new ArrayList<String>();
    EditText et;

    for (int i = 0; i < myList.getCount(); i++) {
        v = myList.getChildAt(i);
        et = (EditText) v.findViewById(R.id.mannschaften);
        mannschaftsnamen.add(et.getText().toString());
    }
    .....
}
Run Code Online (Sandbox Code Playgroud)

我已经知道,getChildAt仅适用于可见行,但我不知道如何以不同方式执行.

android listview android-edittext

26
推荐指数
3
解决办法
4万
查看次数

标签 统计

android ×2

android-edittext ×2

focus ×1

listview ×1