HIeveryone! 我看了這個問題上的其他問題byr沒有找到一個全面的答案。所以,我再次問。我的應用程序必須在Android 2.3.3及更高版本上工作。我有一個微調器和適配器來顯示數據。當用戶點擊微調時,我想以下拉的方式顯示數據列表。我真的不明白我應該如何實現這一點。在android 2.3.3及更高版本中的微調器的下拉模式
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
_messageSpinner = (Spinner) findViewById(R.id.message_filter_spnStatus);
ArrayList<String> messageStatuses = new ArrayList<String>();
messageStatuses.add("All");
messageStatuses.add("Unread");
messageStatuses.add("Read");
_messageSpinner.setAdapter(new MessageStatusAdapter(messageStatuses));
}
public class MessageStatusAdapter implements SpinnerAdapter
{
ArrayList<String> mMessageStatuses = new ArrayList<String>();
LayoutInflater layoutInflater = getLayoutInflater();
public MessageStatusAdapter(ArrayList<String> messageStatuses)
{
mMessageStatuses = messageStatuses;
}
@Override
public int getCount()
{
return mMessageStatuses.size();
}
@Override
public Object getItem(int arg0)
{
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0)
{
// TODO Auto-generated method stub
return 0;
}
@Override
public int getItemViewType(int arg0)
{
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final TextView filterName;
if (convertView == null) {
filterName = (TextView) layoutInflater.inflate(R.layout.item_spinner_message_status, parent, false);
} else {
filterName = (TextView) convertView;
}
filterName.setText("StatusTest");
return filterName;
}
@Override
public int getViewTypeCount()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean hasStableIds()
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isEmpty()
{
// TODO Auto-generated method stub
return false;
}
@Override
public void registerDataSetObserver(DataSetObserver arg0)
{
// TODO Auto-generated method stub
}
@Override
public void unregisterDataSetObserver(DataSetObserver arg0)
{
// TODO Auto-generated method stub
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
final TextView filterName;
if (convertView == null) {
filterName = (TextView) layoutInflater.inflate(R.layout.item_spinner_message_status_dropdown, parent, false);
//filterName.setEllipsize(TruncateAt.END);
} else {
filterName = (TextView) convertView;
}
filterName.setText("DropDownItem");
return filterName;
}
}
item_spinner_message_status:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="10pt"
android:textColor="@color/text_gray" >
</TextView>
item_spinner_message_status_dropdown:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tvMessageStatusDropdown"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="10pt"
android:textColor="@color/text_gray"
android:height="50dp"
android:gravity="center_vertical"
android:padding="2dp" >
</TextView>
恐怕你的食譜不起作用我希望它能起作用。我之前寫過,當用戶點擊微調器(而不是屏幕中心的「對話框」)時,我需要下拉列表。你使用哪個版本的sdk?我需要它在API 10及更高版本中工作。 – konunger
我創建了一個簡單的應用程序,只有微調器和它的適配器。它的工作模式爲「fromthebox」,android從3.0或API 11開始。默認情況下,該項目包含文件夾「values-v11」和「values-v14」,均包含具有主題描述的文件「styles.xml」。可能有一些方法可以在android 2.3.3上應用這些主題? – konunger
我讀過這篇文章[鏈接](http://stackoverflow.com/questions/14214001/spinner-showing-items-as-drop-down-list)作者建議使用庫提供HOLO主題API 7和更高,這裏是[鏈接](https://github.com/Prototik/HoloEverywhere)。這可能是一個解決方案。 – konunger