2014-09-03 80 views
-1

我有一個自定義適配器類的列表視圖。每個列表項目包含2個文本視圖和一個按鈕。我想獲得那些文本視圖的數據,而我點擊按鈕列表中。如何從按鈕點擊從列表視圖獲取textviews的價值?

下面是列表視圖的演示模式

]

請幫我傢伙

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    IconView icon; 
    TextView title; 
    TextView description; 
    Button favour; 

    if (convertView == null) { 
     convertView = ((Activity) getContext()).getLayoutInflater().inflate(textViewResourceId, parent, false); 
    } 

    icon = (IconView) convertView.findViewById(R.id.station_icon); 
    title = (TextView) convertView.findViewById(R.id.station_title); 
    description = (TextView) convertView.findViewById(R.id.station_description); 
    favour=(Button)convertView.findViewById(R.id.favbutton); 

    Station station = getItem(position); 

    convertView.setTag(station); 

    title.setText(station.title); 
    icon.setIcon(station.thumb); 
    description.setText(station.description); 

    return convertView; 
} 

}

+0

只需獲取返回的視圖並根據id或類型獲取子視圖,而不是從中讀取文本。 – 2014-09-03 12:56:56

回答

0
listView.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
     { 
      Value That u Pass In Adapter 
      Toast.makeText(getApplicationContext(), ""+position, Toast.LENGTH_LONG).show(); 
     } 
    }); 


    inside the getview methed also see Toast 

    title.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

     } 
    }); 
    icon.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

     } 
    }); 
    favour.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

     } 
    }); 
+0

我想按鈕在按鈕上點擊按鈕的位置。 – Nikhil 2014-09-04 09:25:22

+0

我們在列表視圖中顯示單行,如果你想在文本視圖的位置比fire setonclick listner在getview中的適配器 – 2014-09-04 09:29:33

0

您可以使用列表控件在getView其實現方法具d在您的自定義適配器中,如下所示 -

public View getView(int pos, View convertView, ViewGroup parent) { 
     View gridView = convertView; 
     if (gridView == null) { 
      gridView = mInflater.inflate(layoutId, null); 
     } 


     TextView tv1 = (TextView) gridView.findViewById(R.id.tv1); 
     TextView tv2 = (TextView) gridView.findViewById(R.id.tv2); 
     Button button = (Button)gridView.findViewById(R.id.btn); 
} 

現在點擊按鈕,可以使用文本視圖。

+0

能更好的解釋一下。從上面的代碼我怎麼能得到textview數據?所有我想要的是兩個textview的數據,而我點擊按鈕。 – Nikhil 2014-09-04 05:52:40

+0

tv1.getText()。toString(); – 2014-09-04 06:11:55

+0

我用適配器類更新了我的問題 – Nikhil 2014-09-04 06:23:37

0

只需在您的getView方法中設置一個onclick listener;

icon = (IconView) convertView.findViewById(R.id.station_icon); 
    title = (TextView) convertView.findViewById(R.id.station_title); 
    description = (TextView) convertView.findViewById(R.id.station_description); 
    favour=(Button)convertView.findViewById(R.id.favbutton); 

那麼你onclick listener得到TextView's文本中。

favour.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) 
    { 
     //title.getText() 
     // description.getText(); 
    } 
0

//這裏我有一個TextView的和編輯文本和列表視圖提交按鈕

@覆蓋

公共查看getView(INT位置,查看convertView,最終的ViewGroup父){

   final View v = super.getView(position, convertView, parent); 

       final TextView txt= (TextView) v.findViewById(R.id.lblMenuname); 
       final EditText QtyView = (EditText) v.findViewById(R.id.editText); 
       Button b=(Button)v.findViewById(R.id.btnInterview); 
       b.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View arg0) { 
         // TODO Auto-generated method stub 
         String txt2 = txt.getText().toString(); 
         Toast.makeText(ItemList.this,txt2.toString() + "=" + QtyView.getText().toString(),Toast.LENGTH_SHORT).show(); 
        } 
       }); 
       return v; 
      } 
+0

您需要重新格式化您的代碼。 – Azeem 2017-07-23 05:14:46

相關問題