2014-09-25 43 views
0

我试图使edittext编辑后点击一个按钮。 以下是我的代码片段。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); 

click事件之后:

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

您需要使用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()的代码中工作。

+0

它的工作..但可setenabled方法没有自动来..我的意思是在对象。 – kavuru 2014-09-25 14:19:01

+0

这很奇怪。我会看看明天。现在必须赶回家。快乐编码:) – 2014-09-25 14:25:48