2016-03-21 28 views
-1

Bir oyuncu listesi bulunan bir etkinliğim var. Liste tüm oyuncunun adını içerir. Her bir isme karşı "Kaldır", "En iyiyi oyla" vb. Seçeneklerle bir spinner vermek istiyorum. Listeyi oluşturdum ancak belirli bir seçenekler kümesine sahip bir spiker ekleyemedim.Liste görünümünün her bir öğesine karşı bir döndürücü nasıl eklenir

Benim kodum. Eğer listview açık Dialog tıklayıp eğiren yerine Dialog özel düzen iliştirdiğinizde

public class AddPlayerActivity extends AppCompatActivity { 

    @InjectView(R.id.players_listView) 
    ListView playersListView; 

    // Adapter for playersListView 
    private ArrayAdapter<String> playersArrayAdapter; 

    // Array of the players to be loaded in the list view 
    String[] players = {"ABC", "XYZ", "MNO", "GHI"}; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_add_player); 
     ButterKnife.inject(this); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


     // Initializing array adapter 
     playersArrayAdapter = new ArrayAdapter<>(this, R.layout.players_name, players); 
     playersListView.setAdapter(playersArrayAdapter); 


     playersListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      } 
     }); 
    } 
} 

activity_add_player.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:showIn="@layout/activity_add_player"> 

     <ListView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="4" 
      android:id="@+id/players_listView" 
      android:choiceMode="singleChoice"/> 
</LinearLayout> 
+0

Do players_name.xml içinde spinner bileşeniniz var mı? Ve varsayılan Adaptör yazma customAdapter kullanmak yerine ve dilediğiniz gibi kullanın. – ajantha

+0

bu bağlantıya bakın http://stackoverflow.com/questions/15002821/listview-adding-spinner-in-each-row her satırda ekleyebilirsiniz sipner –

+0

Bir LinearLayout içinde TextView ve Spinner olacak bir düzen oluşturun (oryantasyon: yatay) .. Sonra BaseAdapter uzatacak özel bir adaptör kullanın. Şimdi bu düzeni adaptörünüzde şişirin. Özel bağdaştırıcıyı nasıl kullanacağınıza dair bu örneği kontrol edin: http://androidadapternotifiydatasetchanged.blogspot.in/ – vjamit

cevap

1

öyledir.

Ör: liste görünümü içindeki kodunun altına

Yaz

final Dialog alertDialog = new Dialog(Add_Vendor.this); 
         alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
         alertDialog.setContentView(R.layout.layout_taglist); 
         alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

         alertDialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 

         alertDialog.show(); 

         list = (ListView) alertDialog.findViewById(R.id.list_view); 
         Button btndone = (Button) alertDialog.findViewById(R.id.button1); 

         CustomAdapterTag cadapter = new CustomAdapterTag(Add_Vendor.this,android.R.layout.simple_spinner_item,  

           tagslist);   

         list.setAdapter(cadapter); 

clicklistner-- ve bu şekilde size "Kaldır" gibi seçeneklerle customAdaper kullanabilirsiniz, "Ücret en iyi olarak" vb

İlgili konular