2013-04-22 26 views
5

main.xml dosyasında ilk iki menü noktasında oluşturarak, iki deliciyi Action çubuğuna elle oluşturdum.ActionBar genişliğinde iki Spinner menü öğesi

Hat I için Array Resource'ı bunlara ayarlıyorum. Bu şeyler aslında işe yarıyor ama sorun şu ki, sol iplikçikler kaynak dizgisi o kadar büyük ki, sadece küçük bir sağ spinner görülebilir.

http://s1.directupload.net/images/130422/88wtvfft.png

Ben cSpinner.setLayoutParams(new Spinner.LayoutParams(60, 20)); gibi şeyler denedim ya da '

ViewGroup.LayoutParams params = pView.getLayoutParams(); 
     params.width = 100; 
      cspinner.setLayoutParams(params); 

Ama bunların hiçbiri çalışmıyor. İkincisi, programın çökmesine izin verir. Şimdi bu sorunu nasıl çözebileceğimi bir ipucu biliyor musunuz? Eğer Aşağıda

enter image description here

enter image description here


kod gibi İşlem Çubuğu özel Düzeni eklemek zorunda bunun için

+0

Döndürücü düzen dosyasındaki değerleri ayarlamayı deneyin. –

+0

İki döndürücü aslında layout.xml dosyasında iplikçiler değil, menu.xml'deki iki menü öğesidir, bu yüzden bunlara değer veremiyorum. – Elektropepi

cevap

10

burada

public class MainActivity extends Activity { 

    final String[] choices = { "Android", "iOS", "RIM" }; 

    private Spinner Spin1; 
    private Spinner Spin2; 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(
       MainActivity.this, android.R.layout.simple_dropdown_item_1line, 
       choices); 
     final ActionBar actionBar = getActionBar(); 
     actionBar.setCustomView(R.layout.actionbar_item); 
     actionBar.setDisplayShowTitleEnabled(false); 
     actionBar.setDisplayShowCustomEnabled(true); 
     actionBar.setDisplayUseLogoEnabled(false); 
     actionBar.setDisplayShowHomeEnabled(false); 

     Spin1 = (Spinner) findViewById(R.id.spinner1); 
     Spin2 = (Spinner) findViewById(R.id.spinner2); 

     Spin1.setAdapter(adapter); 
     Spin2.setAdapter(adapter); 
    } 

} 

olduğunuactionbar_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center" 
android:orientation="horizontal" 
android:weightSum="5" > 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:src="@drawable/ic_launcher" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="2" 
    android:text="my App name" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="#000000" /> 

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 

<Spinner 
    android:id="@+id/spinner2" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 

</LinearLayout> 
+0

Teşekkür ederim, bu mükemmel bir şekilde, tam aradığım şey için çalışıyor. – Elektropepi

+0

NEDEN anlamıyorum actionBar.setCustomView (R.layout.actionbar_item); ve bundan önce setContentView kullanabilir (R.layout.activity_main); – duggu

İlgili konular