您好我在适配器类中动态创建了edittexts并禁用了软键盘,因为我有自己的自定义键盘。但问题是文本字段在单击时没有突出显示,甚至光标也不可见。因此,我创建了一个xml文件作为9补丁并将其放在drawable文件夹中,以便在单击时更改至少edittext的背景。这样就可以清楚地看到特定的edittext被点击了。但它总是显示恒定的颜色(厚绿色),反过来使边框不可见,并在我点击的地方固定颜色。甚至光标也被修复了一些地方。以下是该应用程序的清晰创意的代码和屏幕截图。请指教如何解决这个问题。提前谢谢。
public class TextAdapter extends BaseAdapter {
Context mContext;
int count=81;
int k=0;
static EditText current;
public TextAdapter(Context c) {
mContext = c;
}
public int getCount() {
return count;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
final EditText editText;
if (convertView == null) {
editText = new EditText(mContext);
editText.setLayoutParams(new GridView.LayoutParams(54, 53));
editText.setBackgroundResource(R.drawable.edittextshape);
editText.setGravity(Gravity.CENTER);
editText.setFocusable(false);
editText.setId(k);
k++;
editText.setFilters( new InputFilter[] { new InputFilter.LengthFilter(1)});
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
current = (EditText) v;
current.setBackgroundColor(R.drawable.shape1); //here I set the background color
current.requestFocus();
}
});
editText.setPadding(0, 0, 0, 0);
} else {
editText = (EditText) convertView;
}
editText.setText("");
return editText;
}
public static EditText getCurrentEditText() throws Exception
{
System.out.println("In getCurrent method "+current);
return current;
}
}