2013-07-19 56 views
2

我有要求在微調框(android)中顯示提示。如何在微調框中顯示提示/隱藏文本android

我嘗試過不同的解決方案,但尚未解決問題,所以如何做到這一點?

+2

請檢查此線程stackoverflow.com/questions/6602339/android-spinner-hint – Amrit

+0

檢查我的答案http://stackoverflow.com/a/40341585/5239819 –

回答

0

我通過使用按鈕而不是微調來處理這個問題。 I have the sample project up on GitHub.

在該項目中,我顯示了微調和按鈕以顯示它們的確看起來完全相同。除了按鈕,您可以將初始文本設置爲任何您想要的內容(例如提示)。

這裏的活動看起來像什麼:

package com.stevebergamini.spinnerbutton; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Spinner; 

public class MainActivity extends Activity { 

    Spinner spinner1; 
    Button button1; 
    AlertDialog ad; 
    String[] countries; 

    int selected = -1; 

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

     spinner1 = (Spinner) findViewById(R.id.spinner1); 
     button1 = (Button) findViewById(R.id.button1); 

     countries = getResources().getStringArray(R.array.country_names); 

     // You can also use an adapter for the allert dialog if you'd like 
     // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, countries);   

     ad = new AlertDialog.Builder(MainActivity.this).setSingleChoiceItems(countries, selected, 
       new DialogInterface.OnClickListener() { 

         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          button1.setText(countries[which]); 
          selected = which; 
          ad.dismiss(); 

         }}).setTitle(R.string.select_country).create(); 


     button1.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       ad.getListView().setSelection(selected); 
       ad.show();    
      }}); 

    } 

} 
0

試試這個:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item) { 

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

     View v = super.getView(position, convertView, parent); 
     if (position == getCount()) { 
      ((TextView)v.findViewById(android.R.id.text1)).setText(""); 
      ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed" 
     } 

     return v; 
    }  

    @Override 
    public int getCount() { 
     return super.getCount()-1; // you dont display last item. It is used as hint. 
    } 

}; 

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
adapter.add("Item 1"); 
adapter.add("Item 2"); 
adapter.add("Hint to be displayed"); 

spinner.setAdapter(adapter); 
spinner.setSelection(adapter.getCount()); //displaying hint 

來源:Android: Spinner hint

在github又如:https://github.com/ravivyas84/AndroidSpinnerHint(由拉維維亞斯)

你可以使用一個小騙子,如果它可以幫助你的話您可以將文本顏色更改爲灰色。它可能不適用於許多情況。

希望它有助於!祝你好運!