2013-10-25 50 views
0

我在android上制作了一个数独游戏。这就是我所做的事,到现在为止
文本Adapter.java在Android中获取GridView中所有编辑文本的名称

public class TextAdapter extends BaseAdapter { 
    private Context mContext; 
    int count = 81; 
    int k = 1; 
    private static EditText current = null; 

    public TextAdapter(Context c) { 
     mContext = c; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 81; 
    } 

    @Override 
    public Object getItem(int arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     final EditText editText; 
     if (convertView == null) { 
      editText = new EditText(mContext); 
      editText.setLayoutParams(new GridView.LayoutParams(85, 85)); 
      editText.setPadding(8, 8, 8, 8); 
     } else { 
      editText = (EditText) convertView; 
     } 
     editText.setId(k); 
     editText.setGravity(Gravity.CENTER); 
     editText.setBackgroundResource(R.drawable.rectangle); 
     InputFilter[] FilterArray = new InputFilter[1]; 
     FilterArray[0] = new InputFilter.LengthFilter(1); 
     editText.setFilters(FilterArray); 

     editText.setOnFocusChangeListener(new OnFocusChangeListener() { 

      @Override 
      public void onFocusChange(View view, boolean hasFocus) { 
       // TODO Auto-generated method stub 
       editText.setInputType(InputType.TYPE_NULL); 
       if (current != null) { 
        current.setBackgroundResource(R.drawable.rectangle); 
       } 
       if (hasFocus) { 
        current = (EditText) view; 
        editText.setBackgroundResource(R.drawable.rectangleblue); 
       } 
      } 
     }); 

     return editText; 
    } 

    public static EditText getCurrentEditText() { 
     return current; 
    } 

} 

我想随机填充一些带有号码edittexts的1-9,但我不知道怎么弄的每个编辑文本的标识符/名称。 这可能吗?怎么样?
我是android开发的新手。

回答

0

当您创建EditText时,将它们添加到父项。

parent.addView(editText); 

每当你想要得到的已经创建EditTexts,您可以通过父母的孩子迭代:

Edittext tempET; 
int tempID=0; 
for(int i = 0 ; i < parent.getChildCount(); i++) { 
    tempET=(EditText) parent.getChildAt(i); 
    tempID=tempET.getId(); 
} 
+0

我已经添加了他们这样的: GridView控件的GridView =(GridView控件)findViewById(R。 id.gridview); gridView.setAdapter(new TextAdapter(this)); 有81个EditText,所以我使用了网格布局。 –

相关问题