2016-05-13 131 views
-1

我有一个自定义ListView的按钮,当我点击任何一行上的任何一个按钮我想获得列表视图上的文本标签,现在只需弹出一个敬酒。ANDROID如何获得价值listview项目位置按钮点击

我有list_item.xml:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TableRow android:layout_width="fill_parent" 
    android:id="@+id/TableRow_list_item" 
    android:layout_height="wrap_content" 
    android:gravity="center"> 

    <ImageView 
     android:layout_width="0dp" 
     android:layout_height="80dp" 
     android:id="@+id/imageView_logo_utente" 
     android:src="@drawable/icon_user_green" 
     android:layout_column="1" 
     android:layout_weight="1"/> 

    <TextView 
     android:textColor="#000000" 
     android:id="@+id/nomec" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="Nome Completo" 
     android:layout_weight="2" 
     android:gravity="center" 
     android:height="40dp" 
     android:textSize="17dp" 
     android:layout_column="1"/> 

    <TextView 
     android:textColor="#000000" 
     android:id="@+id/tiposogget" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="Tipo Soggetto Etichetta" 
     android:layout_weight="2" 
     android:gravity="center" 
     android:height="40dp" 
     android:textSize="17dp" 
     android:layout_column="1"/> 

    <TextView 
     android:textColor="#000000" 
     android:id="@+id/cf" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="Codice Fiscale" 
     android:gravity="center" 
     android:height="40dp" 
     android:textSize="17dp" 
     android:layout_column="1" 
     android:layout_weight="2" /> 


    <TextView 
     android:textColor="#000000" 
     android:id="@+id/idsogg" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:text="ID Soggetto" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:height="40dp" 
     android:textSize="17dp" 
     android:layout_column="1"/> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="90dp" 
     android:id="@+id/button_scan" 
     android:layout_column="1" 
     android:layout_weight="0.63" 
     android:height="140dp" 
     android:background="@drawable/custom_button_scanner" 
     android:onClick="myClickHandler" 
     android:focusable="false"/> 


</TableRow> 

按钮有“机器人:的onClick =” myClickHandler “” ..

在我的活动我有这个:

公共类ActivityListview扩展AppCompatActivity {

//************VARIABILI GLOBALI************* 

ListView lv; 

static final String KEY_CF = "CodiceFiscale"; 
static final String KEY_ID = "IDSoggetto"; 
static final String KEY_NOMEC = "NomeCompleto"; 
static final String KEY_TIPOSOGGET = "TipoSoggettoEtichetta"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listview_scanner); 


    lv = (ListView) findViewById(R.id.listView_resultXML); 


    Example(); 

} 



public void Example() { 
    ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>(); 

    // Adding menuItems to ListView 
    ListAdapter adapter = new SimpleAdapter(this, menuItems, 
      R.layout.list_item, 
      new String[]{KEY_CF, KEY_ID, KEY_NOMEC, KEY_TIPOSOGGET}, new int[]{ 
      R.id.cf, R.id.idsogg, R.id.nomec, R.id.tiposogget}); 
    // selecting single ListView item 
    ViewGroup headerview = (ViewGroup) getLayoutInflater().inflate(R.layout.header_listview, lv, false); 
    lv.setAdapter(null); 
    lv.addHeaderView(headerview); 
    lv.setAdapter(adapter); 





public void myClickHandler(View v) 
{ 
    // HERE I WOULD LIKE TO get vaule as method setOnItemClickListener 
    Toast.makeText(ActivityListviewScanner.this, "value is:", Toast.LENGTH_LONG).show(); 

} 

的方法:

// listening to single listitem click 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     //Metodo per prelevare dati al click sulla casella della ListView 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      // getting values from selected ListItem 
      String string_example = ((TextView) view.findViewById(R.id.cf)).getText().toString(); 

     } 
    }); 
} 

}

我想这样做在的onclick按钮..

我该怎么办?

三江源一切,对不起,我的英语

回答

0

您将需要从SimpleAdapter延伸,从而可以节省你的听众,将参考TextView的,你会宣称适配器的getView方法中。

如果你需要帮助创建适配器,看看这个其他问题: Custom Adapter for List View

+0

的告诉你我的情况下小导/例子? –

0
  1. 创建延伸BaseAdapter类。并在getview方法regiter你的按钮并设置onClick函数。

    public class Holder { 
         TextView tv1; 
         TextView tv2; 
         TextView tv3; 
         TextView tv4; 
         Button bt; 
         ImageView img; 
        } 
    
        @Override 
        public View getView(final int position, View convertView, ViewGroup parent) { 
         // TODO Auto-generated method stub 
         Holder holder = new Holder(); 
         View rowView; 
         rowView = inflater.inflate(R.layout.list_item, null); 
         holder.tv1 = (TextView) rowView.findViewById(R.id.nomec); 
         holder.tv2 = (TextView) rowView.findViewById(R.id.tiposogget); 
         holder.tv3 = (TextView) rowView.findViewById(R.id.cf); 
         holder.tv4 = (TextView) rowView.findViewById(R.id.idsogg); 
         holder.img = (ImageView) rowView.findViewById(R.id.imageView_logo_utente); 
         holder.bt = (Button) rowView.findViewById(R.id.button_scan); 
         holder.bt.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          //write your code here 
         } 
        }); 
    
    
    return rowView; 
    

    }

相关问题