在Eclipse中,您可以創建主 - 細節流程,這是您正在嘗試執行的示例。
爲此創建一個「新的Android應用程序」,並在第三或第四個屏幕中稱爲「創建活動」,向您提供三種可能性,選擇一個名爲「主/細節」的屏幕。
這不能爲您的問題提供答案,而只是指出您可以從中進行闡述的工作示例。
現在要回答你的問題,我查看了你的代碼,發現了錯誤。
以下是onCreateView()
的工作代碼。我註釋掉了錯誤的代碼行。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment_one, container);
listView = (ListView) v.findViewById(R.id.listView);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//listView.setAdapter(new ArrayAdapter<String>(getActivity(),
// android.R.layout.simple_dropdown_item_1line, array));
//listView.setSelector(android.R.color.holo_blue_dark);
listView.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, array));
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
listView.setItemChecked(position, true);
FragmentTwo frag = (FragmentTwo) getActivity()
.getFragmentManager()
.findFragmentById(R.id.fragmentTwo);
frag.updateTextView(array[position]);
}
});
return v;
}
在你的代碼2條以下的線接錯
listView.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_dropdown_item_1line, array));
listView.setSelector(android.R.color.holo_blue_dark);
你在這裏做什麼設置simple_dropdown_item_1line
這是不是你想要的,你手動設置selector
。您必須使用simple_list_item_activated_1
而不是手動設置選擇器。
listView.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, array));
//listView.setSelector(android.R.color.holo_blue_dark);
如果你想自定義選擇的顏色,你可以通過複製simple_list_item_activated_1
並編輯您的需求,並調用編輯的佈局創建自定義選擇。 但是,我建議使用默認顏色,以便Android決定更改其配色方案的日期,以符合新的配色方案。
總之,要使ListView.CHOICE_MODE_SINGLE
正常工作,您必須使用simple_list_item_activated_1
而不是手動設置selector
。
請問您能否提供onItemClick()方法。 – HpTerm
您是否嘗試過查看eclipse提供的示例。有一個左窗格更新右窗格細節的主細節示例,它可以正常工作。 – HpTerm
向我們展示您的getView方法 –