2015-05-30 2 views
0

Я могу установить один из элементов меню ActionBar в качестве значка и показать его как «showAsAction =« always », все, что я получаю, это меню переполнения и заголовок . кнопка вместо значка я не понимаю, что я делаю неправильноset menu item to aways show + icon

enter image description here

enter image description here

это код в деятельности:

public class RecipientsActivity extends ListActivity { 
private static final String TAG = RecipientsActivity.class.getSimpleName(); 
protected List<ParseUser> mFriends; 
protected ParseUser mCurrentUser; 
protected MenuItem mSendMenuItem; 
protected ParseRelation<ParseUser> mFriendsRelation; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_recipients); 

    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
} 
@Override 
public void onResume() { 
    super.onResume(); 

    mCurrentUser = ParseUser.getCurrentUser(); 
    mFriendsRelation = mCurrentUser.getRelation(ParseConstants.KEY_FRIENDS_RELATION); 
    setProgressBarIndeterminateVisibility(true); 

    ParseQuery<ParseUser> query = mFriendsRelation.getQuery(); 
    query.addAscendingOrder(ParseConstants.KEY_USERNAME); 
    query.findInBackground(new FindCallback<ParseUser>() { 
     @Override 
     public void done(List<ParseUser> friends, ParseException e) { 
      setProgressBarIndeterminateVisibility(false); 
      if (e == null) { 
       mFriends = friends; 

       String[] friendNames = new String[mFriends.size()]; 
       int i = 0; 
       for (ParseUser friend : mFriends) { 
        friendNames[i] = friend.getUsername(); 
        i++; 
       } 

       ArrayAdapter<String> adapter = new ArrayAdapter<String>(RecipientsActivity.this, 
         android.R.layout.simple_list_item_checked, 
         friendNames); 
       setListAdapter(adapter); 
      } else { 
       Log.e(TAG, e.getMessage()); 
       AlertDialog.Builder builder = new AlertDialog.Builder(getListView().getContext()); 
       //e.getMesssage = says useful information about the error 
       builder.setMessage(e.getMessage()); 
       builder.setTitle(R.string.error_title); 
       builder.setPositiveButton(android.R.string.ok, null); 

       AlertDialog dialog = builder.create(); 
       dialog.show(); 
      } 
     } 
    }); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_recipients, menu); 
    mSendMenuItem = menu.getItem(0); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_send) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    mSendMenuItem.setVisible(true); 

} 
+0

Является ли 'app' именем вашего приложения? –

+0

нет, нет. Должен ли я изменить его на имя моего приложения? :) –

+0

попробуйте изменить 'приложение' на обе строки 2 и 9 вашего XML на имя вашего приложения. –

ответ

2

Ваша деятельность ListActivity. Это означает, что вы используете встроенную версию API уровня 11+ для панели действий, а не для резервного копирования appcompat-v7.

Следовательно, смените app:showAsAction на android:showAsAction.

+0

Спасибо за ваш ответ. Это решило мою проблему! Благодаря! :) –