ActionBar Шерлок Пункт меню OnClick
Я новичок в использовании Шерлок-ActionBar, и я запустил его в своем приложении, и у меня есть элемент в панели действий, но я не знаю, как сделать элемент чем-то, когда он щелкнул все, что я получил, это.
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Folder")
.setIcon(R.drawable.folder)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
//What do i write here?
return true;
Надеюсь, вы понимаете, что я имею в виду:)
ИЗМЕНИТЬ
Эй, я сделал это с небольшой помощью из этой темы, которую я нашел, и сделал несколько изменений, и вот код!: DDD
@Override
public boolean onCreateOptionsMenu(Menu menu) {
com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.search:
finish();
return true;
case R.id.new_folder:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Ответы
Ответ 1
Попробуйте, это работает:
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.layout.menu, menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.settings:
Intent i=new Intent(class1.this, clas2.class);
startActivity(i);
return true;
}
return false;
}
Ответ 2
Что-то вроде этого (взято из одного из моих приложений).
Активность в этом случае расширяет SherlockFragmentActivity
.
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
menu.add(Menu.NONE, R.id.ID_ACTION_EXIT, Menu.NONE,R.string.action_label_exit)
.setIcon(android.R.drawable.ic_menu_close_clear_cancel)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(
com.actionbarsherlock.view.MenuItem item) {
switch(item.getItemId()){
case R.id.ID_ACTION_EXIT:
Main.this.finish();
return true;
default:
return false;
}
}
R.id.ACTION_EXIT
помещается в res/values/ids.xml
<resources><item name="ID_ACTION_EXIT" type="id"/></resources>
[EDIT]
Тогда попробуйте (расширяет SherlockListActivity). Сначала вам нужно сделать некоторые изменения. Этот код исходит из демонстраций Sherlock. Вы должны скачать их.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu sub = menu.addSubMenu("Theme");
sub.add(0, R.style.Theme_Sherlock, 0, "Default");
sub.add(0, R.style.Theme_Sherlock_Light, 0, "Light");
sub.add(0, R.style.Theme_Sherlock_Light_DarkActionBar, 0, "Light (Dark Action Bar)");
sub.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home || item.getItemId() == 0) {
return false;
}
THEME = item.getItemId();
Toast.makeText(this, "Theme changed to \"" + item.getTitle() + "\"", Toast.LENGTH_SHORT).show();
return true;
}
Ответ 3
Пожалуйста, попробуйте это тоже.
import android.os.Bundle;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
public class ActionBarTestActivity extends SherlockActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action_bar_test);
}
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activity_action_bar_test, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.phone:
Toast.makeText(getBaseContext(), "You selected Phone",
Toast.LENGTH_SHORT).show();
break;
case R.id.computer:
Toast.makeText(getBaseContext(), "You selected Computer",
Toast.LENGTH_SHORT).show();
break;
case R.id.gamepad:
Toast.makeText(getBaseContext(), "You selected Gamepad",
Toast.LENGTH_SHORT).show();
break;
case R.id.camera:
Toast.makeText(getBaseContext(), "You selected Camera",
Toast.LENGTH_SHORT).show();
break;
case R.id.video:
Toast.makeText(getBaseContext(), "You selected Video",
Toast.LENGTH_SHORT).show();
break;
case R.id.email:
Toast.makeText(getBaseContext(), "You selected EMail",
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
}
Ответ 4
You use this one
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSherlockActivity().getSupportMenuInflater().inflate(R.menu.settingmenu, menu);
getSherlockActivity().getSupportMenuInflater().inflate(R.menu.menugridcalendar,me
}
This will be added in your sherlockfragment activity:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.settings:
Intent intent=new Intent(currentclass.this, calledclass.class);
startActivity(intent);
return true;
}
return false;
}