2012-05-06 15 views
19

私はSherlock ActionBarを初めて使用しています。私はそれを私のアプリで実行させて、アクションバーにアイテムを持っていますが、クリックしたときにそのアイテムを何かする方法はわかりません私が持っているのはこれだけです。ActionBar Sherlock Menu Item OnClick

私はねえ、私はそれは私が見つけた、私はここにいくつかの変更を行い、この threadから少し助けを借りて働かせたあなたは、私が:)

EDIT

何を意味するかを理解してほしい

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); 
    } 
} 

答えて

23

それは動作しますが、これを試してみてください:

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; 
} 
+0

onActionItemclick、私は新しい活動を始めたいが、別のビューを膨らませたいなら、何を使わなければならないのか?私は断片を使うべきですか?私は断片を実装しますが、ビューは膨らんでいません。したがって、Plzは私を助けます。 –

8

何かこれは私のアプリから取ったものです。 この場合のアクティビティは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

は、[EDIT] (SherlockListActivityを拡張)、次いでこれを試しres/values/ids.xml

<resources><item name="ID_ACTION_EXIT" type="id"/></resources> 

に配置されます。まず編集をしなければなりません。このコードは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; 
} 
+0

私はそれをテストしたが、何も起こりません –

+0

最後の投稿は別の例で編集されています。 – ernell

+0

私はそれを修正しました。コードは質問にあります。 –

2

あまりにもこれを試してみてください。

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; 
    } 
} 
+0

onActionItemclick、別のビューを展開したい場合は何を使用する必要がありますか?私は断片を使うべきですか?私は断片を実装しますが、ビューは膨らんでいません。したがって、Plzは私を助けます。 –

0
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; 
} 
関連する問題