如何在EditText的GroupView上设置setOnClickListener

时间:2012-08-04 10:20:32

标签: android android-layout android-intent android-widget

我想在ViewGroup中插入包含在LinearLayout中的EditText数组,以便能够为所有EditText设置相同的setonclicklistener。我该怎么办?

这是我尝试的代码:

public class Main extends Activity implements  OnClickListener {

ViewGroup group;;
View v1;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

group = (ViewGroup)findViewById(R.id.xsubLayout);
for (int i = 0, count = group.getChildCount(); i < count; ++i) {
v1 = group.getChildAt(i);
if (v1 instanceof EditText) {
((EditText)v1).setOnClickListener(this);
}
}

和OnClick方法:

@Override
public void onClick(View v) {

if(v == v1 ){
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v1.getWindowToken(), 0);


enableKeyboard();
}

}

但这种方式不起作用。在实践中继续看Android键盘而不是我的自定义键盘

1 个答案:

答案 0 :(得分:0)

您必须为您的类实现onClickListener()。 例如像这样。

  public class Main extends Activity implements  OnClickListener {

     EditText etText;

     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);

     etText = (EditText)findViewById(R.id.yourEditTextId);
     btnRemove.setOnClickListener(this)
    }

public void onClick(View view) {
    // TODO Auto-generated method stub
   // Here you can perform same task for all the EditText.

}
  }
 }