對於android和編程一般來說是新手,因此學習概念和我一樣。獲取所選編輯文本的索引和ID以進行進一步處理
我有一個LinearLayout動態添加edittexts。
我需要能夠獲得任何編輯文本的索引和ID時,它被選中或焦點。
我試圖通過兒童數的循環檢查選擇,像這樣:
int count = llmain.getChildCount();
for (int i=0; i< count; ++i) {
if ((llmain.getChildAt(i).isSelected()) == true){
//Do Stuff
}
,但我不知道如果甚至關閉,這將是隻爲指數.....
幫助將不勝感激!
感謝
編輯:仍然沒有一種可靠的方法來實現這一目標。下面的
if(v instanceOf EditText) {
id = v.getId();
index = ll.indexOfChild(v);
的示例返回指數-1和id的十個位數號碼,但是,我對分配創建一個ID。 ?奇怪的是,「if」中的代碼正在運行,所以它至少認爲它具有重點視圖。現在,如果我改變「的instanceof」像
if (v != null){
id = v.getId();
index = llmain.indexOfChild(v);
空檢查,我添加了一個setFocusableInTouchMode(真),我得到合理的回報,但是,它然後就像我叫clearFocus(),因爲沒有的EditTexts的重點。這是我完整的概念代碼證明,它返回正確的值,但不再讓EditTexts實際上有焦點。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&(event.getKeyCode() == 66)) // KeyEvent.* lists all the key codes u pressed
{
View myView = linflater.inflate(R.layout.action, null);
myView.setId(pos);
pos++;
myView.setFocusableInTouchMode(true);
llmain.addView(myView);
myView.requestFocus();
View v = llmain.findFocus();
if (v != null){
id = v.getId();
index = llmain.indexOfChild(v);
Context context = getApplicationContext();
CharSequence text = "index is:" + index + "id is:" + id;
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
return false;
}
此,除非我評論的setFocusableInTouchMode行返回正確的價值觀,那麼它可以追溯到奇-1指數和十個位數的ID。我究竟做錯了什麼?將必須是一個很好的(和工作)的答案來獲得我的代表的一半.....
所以沒有人有這個解決方案?它仍然讓我瘋狂!
再次感謝
Ĵ如果(... isSelected())' – kcoppock 2011-05-12 16:33:08