edittext无法动态地从只读模式进行编辑

时间:2014-09-25 12:00:56

标签: android android-edittext android-debug

我试图在点击按钮后使edittext可编辑。 以下是我的代码段。

点击前事件:

name_value = (EditText) findViewById(R.id.name_value);
name_value.setText(DashBoardDisplay_l.getName());
name_value.setFocusable(false);


likes_value = (EditText) findViewById(R.id.likes_value);
likes_value.setText(DashBoardDisplay_l.getLikes());
likes_value.setFocusable(false);

calls_value = (EditText) findViewById(R.id.Calls_value);
calls_value.setText(DashBoardDisplay_l.getCalls());
calls_value.setFocusable(false);

点击事件后:

android.view.View.OnClickListener enable_listeners = new OnClickListener() {

    @Override
    public void onClick(View v) {

        Log.d("Zumbare","in enable listners");
        Button b = (Button) v;
        if(b.getText().toString().equalsIgnoreCase("edit")){

            Log.d("Zumbare","in edit condition");
            desc.setOnClickListener(show_buttons);
            icon.setOnClickListener(slct_image);
            name_value.setFocusable(true);
            likes_value.setFocusable(true);
            calls_value.setFocusable(true);
            edit.setText("Save");
            name_value.requestFocus();

        }

    }
};

但是在按钮点击事件之后,没有焦点出现在name_value edittext上,也无法编辑。 那么我在这里或其他更多的事情有什么不对呢?

1 个答案:

答案 0 :(得分:1)

您需要使用setEnabled()

setFocusable()不会使edittext可编辑。它只关注特定的edittext。

// make editable
name_value.setEnabled(true);
likes_value.setEnabled(true);
calls_value.setEnabled(true); 

// set focusable
name_value.setFocusable(true);
likes_value.setFocusable(true);
calls_value.setFocusable(true);

//set focus to particular edittext
name_value.requestFocus();

应该适用于onClick()的代码。