2012-12-07 46 views
-1

相同的ID我創建使用XML和添加編輯文本提交,在列表視圖中的適配器類.IM使用enumerator.by這我能創建兩個文本框與同樣id.the問題是如何從文本字段得到的字符串,因爲它們共享相同的id.below是代碼。如何從多個編輯文本的文本與機器人

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    View rowView = null; 

    AddKeywordRow row = keywordRows.get(position); 

    switch (row.getRowType()) { 
    case TitleRow: 
     rowView = inflater.inflate(R.layout.titlerow, null); 
     TextView txtTitle = (TextView) rowView.findViewById(R.id.rowtitle); 
     txtTitle.setText(row.getMessage()); 
     break; 
    case EditRow: 
     rowView = inflater.inflate(R.layout.editrow, null); 
     txtInput = (EditText) rowView.findViewById(R.id.rowedit); 
     txtInput.setHint(row.getMessage()); 
     if (row.getHeight() != 0) 
     { 
      LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,row.getHeight()); 
      txtInput.setLayoutParams(layoutParams); 
      layoutParams.setMargins(7, 0, 7,0); 
     //txtInput.setLayoutParams(new LinearLayout.LayoutParams(
      //  LinearLayout.LayoutParams.MATCH_PARENT, row.getHeight())); 
      txtInput.setPadding(3,0,0,30); 
     } 
     // set padding and margin 
     break; 
    case MessageRow: 
     rowView = inflater.inflate(R.layout.messagerow, null); 
     TextView txtMessage = (TextView) rowView 
       .findViewById(R.id.rowmessage); 
     txtMessage.setText(row.getMessage()); 
     break; 
    case ButtonRow: 
     rowView = inflater.inflate(R.layout.buttonrow, null); 
     Button btn = (Button)rowView.findViewById(R.id.button1); 

     btn.setOnClickListener(new OnClickListener() { 


     } 
     }); 

     break; 
    } 

    return rowView; 
} 
+0

有沒有簡單的方法來做到這一點,我認爲。你必須通過你的listview中的每一個孩子,並檢查它是否有這個ID,如果這是你想要的方法。也許可以考慮使用別的東西,然後列表視圖這..這並不意味着使用這種方式。但是,就是要用來創建相同的項目列表..喜歡用表格數據的表。使用上述code..would –

回答

0

首先,我會建議您使用Holder pattern作爲您的列表項。 其次重寫getItem(int position);在您的適配器中,以便根據位置返回必要的文本值。例如,您可以在您的活動中的onItemclickListener()中使用它。

@Override 
    public String getItem(int position) { 
     return keywordRows.getMessage(position); 
    } 

而且你onItemClickListener看起來像:

((EditText上)getAdapter()的getItem(ID):

private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long rowid) { 
      String message = (String)adapterView.getItemAtPosition(position); 
     } 
    } 
+0

k將嘗試這種 – user578386

0

通過列表行,像(僞代碼)進行檢索).getText()

+0

可以ü給我的這一個例U grateful..i希望將其存儲在兩個不同的字符串 – user578386