2012-04-02 67 views
4

對於我的Android應用程序,我需要使用顯示XML樹的微調框。這棵樹是讓用戶理解他可以選擇的價值的級別。Android - 如何顯示有價值的微調框,但顯示不同的值

這裏是什麼,我現在所擁有的一個畫面: enter image description here

正如你所看到的,我已經把一些小「>」和一些空間來模擬樹。我現在想要的是當用戶選擇一個條目時,顯示沒有這些符號的值。

今天,微調顯示這樣的值: enter image description here

的詞是「>超市」,但我要的是「超市」,並且僅此而已。有沒有辦法修改微調器顯示的選定值,但不是列表?

我希望你能幫助我。

問候。

回答

2

這是我用,如果有人需要它的代碼:

首先,代碼如下因素部分取代你的微調:

<RelativeLayout 
    android:layout_width="190dp" 
    android:layout_height="40dp" 
    android:layout_marginRight="5dp">  

    <Spinner 
     android:id="@+id/spinner" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/custom_spinner" 
     android:visibility="invisible" /> 

    <Button 
     android:id="@+id/fake_btn" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/custom_spinner" /> 

    <TextView 
     android:id="@+id/fake_text" 
     android:layout_width="140dp" 
     android:layout_height="40dp" 
     android:layout_marginLeft="10dp" 
     android:gravity="center_vertical" 
     android:textColor="#000000" /> 

</RelativeLayout> 

創建的名爲custom_spinner.xml繪製文件夾一個新的XML文件,並把該代碼:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:state_focused="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/spinner_pressed" /> 

    <item 
     android:state_focused="true" 
     android:state_pressed="true" 
     android:drawable="@drawable/spinner_pressed" /> 

    <item 
     android:state_focused="false" 
     android:state_pressed="true" 
     android:drawable="@drawable/spinner_pressed" /> 

    <item 
     android:drawable="@drawable/spinner_normal" /> 

</selector> 

下載這兩個圖片,並將它們添加到您的繪製文件夾(spinner_pressed.9.pngspinner_normal.9.png):

spinner_pressed.9.png spinner_normal.9.png

在你的活動中,添加以下變量:

private Spinner spinner; 
private Button fake_btn; 
private TextView fake_text; 

在onCreate方法,添加:

spinner = (Spinner) findViewById(R.id.spinner); 
fake_btn = (Button) findViewById(R.id.fake_btn); 
fake_text = (TextView) findViewById(R.id.fake_text); 

fake_btn.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) 
    { 
     spinner.performClick(); 
    } 
}); 

spinner_manual.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView parentView, View childView, int position, long id) 
    {   
     String value = (String) spinner.getItemAtPosition(position); 
     fake_text.setText(value); 
    } 
    public void onNothingSelected(AdapterView parentView) {} 
}); 

你來了,它應該工作。

+0

匹配的自定義圖像,此代碼不完整,您沒有添加將值替換爲Vipin建議的代碼。仍然我通過這個解決了我的問題,所以+1給你們兩個:) – 2013-04-19 06:13:23

4

你可以做到這一點的想法,

讓你的微調無形把微調 集的TextView文本後面的TextView的,以微調器選擇的項目與

textView.settext(spinner.getSelectedItem().replace(">","").trim())); 

不要忘記將微調器放在textView上,否則你將無法獲得微調器點擊 事件

+0

謝謝,但如果我想顯示微調器的形狀如何做同樣的事情? – Manitoba 2012-04-02 08:30:39

+0

其簡單只是設置你的文本視圖的背景,以微調圖像 – vipin 2012-04-02 08:32:24

+0

你需要可以輕鬆獲得的微調圖像 – vipin 2012-04-02 08:33:03

相關問題