2012-04-20 4 views
0

Je suis nouveau sur android. J'ai été créé custome_row_view.xml fichier pour la vue de ligne.Bouton OnclickEvent dans une rangée personnalisée Voir ListView dans android

En utilisant la liste, j'affiche deux lignes. maintenant j'ai ajouté un bouton dans custome_row_view.

comment écrire du code pour ce bouton onclick

Main. XML

<ListView 
     android:id="@id/android:list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 

custom_row_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Medium Text" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<Button 
    android:id="@+id/buton1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Medium Text" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

</LinearLayout> 

CustomeViewActivity.java

package naresh.custom.view; 

import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.Toast; 
import java.util.ArrayList; 
import java.util.HashMap; 
import android.app.ListActivity; 

public class CustomeViewActivity extends ListActivity implements OnItemClickListener{ 
    static final ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     list.removeAll(list); 

     ListView lista=(ListView)findViewById(android.R.id.list); 
     int count = lista.getChildCount(); 

     SimpleAdapter adapter = new SimpleAdapter(
      this, 
      list, 
      R.layout.custom_row_view, 
      new String[] {"title","description"}, 
      new int[] {R.id.textView1,R.id.textView2} 
     ); 

     if(count<5){ 
      HashMap<String,String> temp = new HashMap<String,String>(); 
      temp.put("title","On/Off"); 
      temp.put("description", "Alert to be On or Off"); 
      list.add(temp); 
      HashMap<String,String> temp1 = new HashMap<String,String>(); 
      temp1.put("title","Select tone"); 
      temp1.put("description", "Select tone for alerting"); 

      list.add(temp1); 
      HashMap<String,String> temp2 = new HashMap<String,String>(); 
      temp2.put("title","Alert Time"); 
      temp2.put("description", "Select Time for alerting Before/After"); 
      list.add(temp2); 
      HashMap<String,String> temp3 = new HashMap<String,String>(); 
      temp3.put("title","Change Password"); 
      temp3.put("description", "Can cahnge password any time"); 
      list.add(temp3); 

      setListAdapter(null); 
      setListAdapter(adapter); 
     } 
     getListView().setOnItemClickListener(this); 
    } 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     // TODO Auto-generated method stub 
     Toast.makeText(this,"ITem clicked", Toast.LENGTH_LONG).show(); 
    } 
} 
+0

au moins comprennent un code de ce que vous avez déjà – mihail

+0

Donnez-nous un peu de code s'il vous plaît .......... –

+0

i mon code édité complet. maintenant expliquez-moi @Krishna Suthar – Naresh

Répondre

0

Je pense que vous utilisez CustomAdapter pour alimenter le ListView ..

Si oui, alors dans getView() inclut l'action du bouton:

public View getView(final int position, View convertView, ViewGroup parent) 
        { 

          View row=convertView; 
          FetchHolder holder=null; 

          if (row==null) 
          { 
          LayoutInflater inflater=getLayoutInflater(); 
          row=inflater.inflate(R.layout.grid, parent, false); 

          holder=new FetchHolder(row); 


          row.setTag(holder); 
          } 
         else 
          { 
          holder=(FetchHolder)row.getTag(); 
          } 

          holder.button.setOnClickListener(new OnClickListener() 
          { 
           public void onClick(View v) { 

           } 
          }); 
          return row; 
          } 

         } 



        static class FetchHolder 
        { 
         private Button time=null; 

         FetchHolder(View row) 
         { 

          time=(Button)row.findViewById(R.id.timebutton); 

           } 
+0

Pls voir le code ci-dessus et dire où je dois écrire ce code? – Naresh

+0

USe liste personnalisée – Abhi

+0

pls modifier mon code ci-dessus. en utilisant ce code .. pouvez-vous faire? je ne sais pas wr pour faire cela .. – Naresh

Questions connexes