クリック時にアクションバーのドロップダウンナビゲーションリストのアイテムの表示を変更するにはどうすればよいですか?クリックした後、表示されたアイテムに別のビューが表示されるようにします(レイアウトでは非表示に設定されています)。onNavigationItemSelected
からメソッドを取得しましActionBar.OnNavigationListener
たが、クリックされたアイテムのビューは渡されず、ナビゲーションスピナーでのアイテムの位置だけが渡されます。つまり、アクションバースピナーから選択したビューへの参照を取得できないのはなぜですか?listview onItemClick
(からビューを取得できるようにOnItemClickListener()
)
質問する
1450 次
3 に答える
2
ActionBar
のSpinner
リソース ID:android:id/action_bar_spinner
Spinner
リソース ID を取得します。
int resId = getResources().getIdentifier("action_bar_spinner", "id", "android");
Spinner
リソース ID を使用してウィジェットへの参照を取得します。
final Spinner spinner = (Spinner) getWindow().getDecorView().findViewById(resId);
これで、選択したビューにアクセスできるようになります:
CheckedTextView v = (CheckedTextView) spinner.getSelectedView();
で選択したビューをすぐに変更できますOnNavigationListener
。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new MyFragment())
.commit();
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,
R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
int resId = getResources().getIdentifier("action_bar_spinner", "id", "android");
final Spinner spinner = (Spinner) getWindow().getDecorView().findViewById(resId);
this.getActionBar().setListNavigationCallbacks(mSpinnerAdapter, new ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition,
long itemId) {
CheckedTextView v = (CheckedTextView) spinner.getSelectedView();
// Modify selected view.
return true;
}
});
}
于 2014-08-19T17:33:05.770 に答える
0
私はこれを理解しようとしていただけで、なんとか追跡することができました。
これを行うために使用setSelectedNavigationItem
します。
于 2012-06-30T15:36:28.260 に答える
0
あなたの navigationListener で、これを試すことができます:
OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
View convertView = null;
View view = adapter.getView(itemPosition, convertView, null);
TextView myTextView = (TextView) view
.findViewById(R.id.my_textView);
Toast.makeText(getBaseContext(), myTextView.getText(),
Toast.LENGTH_LONG).show();
return true;
}
次に、アダプターを介してアイテムを取得しています。私の唯一の問題は、取得した参照コンテンツを変更することです。私はそれを機能させることができないようです。
私はそれが役立つことを願っています
于 2012-09-11T13:14:19.200 に答える