在android中单击时,操作栏项目没有响应

在android中单击时,操作栏项目没有响应,android,android-actionbar,Android,Android Actionbar,我面临一个问题…我在操作栏上创建了一个项目..当我单击该项目时,我的项目单击按钮没有响应..为了打印我创建了Toast..为了检查解决方案 但是吐司没有显示出来 下面是更新的片段类 public class Welcome extends SherlockFragment { private ProgressDialog pDialog; Button editprofile; JSONParser jsonParser = new JSONParser();

我面临一个问题…我在操作栏上创建了一个项目..当我单击该项目时,我的项目单击按钮没有响应..为了打印我创建了Toast..为了检查解决方案 但是吐司没有显示出来

下面是更新的片段类

public class Welcome extends SherlockFragment {
    private ProgressDialog pDialog;
    Button editprofile;
    JSONParser jsonParser = new JSONParser();
     ImageView i;
    Editor editor;
    SharedPreferences sharedPreferences;
    ImageView frm;
    ImageLoader imageloader;
    String image_url;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState)
    {

        View rootView = inflater.inflate(R.layout.welcome, container, false);
        final UserModel user = (UserModel) getActivity().getIntent().getSerializableExtra("User");
        frm=(ImageView)rootView.findViewById(R.id.image_frm);
        // Button editprofile = (Button)rootView.findViewById(R.id.btn_edit);
        //ImageView image = (ImageView)rootView. findViewById(R.id.imageView1);
        TextView userfullname = (TextView)rootView. findViewById(R.id.userfullname);
        TextView tv_tomeet = (TextView)rootView. findViewById(R.id.tomeet);

        TextView tv_intrseted = (TextView) rootView.findViewById(R.id.intsdin);


        int loader = R.drawable.loader;

        String UserfullName = user.getUser_Full_Name();
        String Tomeet=user.getTo_Meet();
        String Age = user.getUser_Age();
        String Gender = user.getGender();
        String IntrestedIn = user.getIntrest_In();
        Bundle bundle = this.getArguments();
        String image_url=user.getUser_Image();
        userfullname.setText(UserfullName);
        tv_tomeet.setText(Tomeet);
        //image loader
        setHasOptionsMenu(true);
    //imageloader=new ImageLoader();

        //tv_gender.setText(Gender);
    ImageView     iv = (ImageView)rootView.findViewById(R.id.imageView1);
    Picasso.with(getActivity())
    .load(image_url).transform(new RoundedImageView()).into(iv);


    frm.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String image_url=user.getUser_Image();
             Bundle bundle = new Bundle();
             bundle.putString("UserImage", image_url);
        }
    });

        // ImageLoader class instance
        //ImageLoader imgLoader = new ImageLoader(getActivity());



    // whenever you want to load an image from url
    // call DisplayImage function
    // url - image url to load
    // loader - loader image, will be displayed before getting image
    // image - ImageView 
      /*  imgLoader.DisplayImage(image_url, Welcome.this, image);*/
        return rootView;

    }



    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);

    }

    @Override
    public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu,MenuInflater inflater)
    {
        inflater.inflate(R.menu.action_bar_menu, menu);
        //super.onCreateOptionsMenu(menu, inflater);
    }
@Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_search:
                logout();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    ///Logout User And Clear Sharedpref
    public void logout(){
        Toast.makeText(getActivity(), "hi Logout", Toast.LENGTH_LONG).show();
         sharedPreferences = getActivity().getSharedPreferences(MainActivity.MyLOGINDATA
                 ,0);
                   editor = sharedPreferences.edit();
                  editor.clear();
                  editor.commit();
        Intent l=new Intent(getActivity(),MainActivity.class);
        startActivity(l);
        getActivity().finish();

    }



}
这是菜单项

<item 
          android:id="@+id/action_search"
          android:icon="@drawable/setting_iconn"
          android:title="Setting"
          android:showAsAction="always"
/>

onclick Not Working Stil

编辑:在了解到您正在处理
片段后

将以下内容添加到
片段的
onCreate
方法中

setHasOptionsMenu(true);
你忘了覆盖,这就是原因

编辑

对于菜单,应该在您的片段活动中执行,而不是在片段中执行

但是,如果要将其添加到片段中,请参见该链接:
(Marco HC回复)

Sidd的回答是正确的。您需要覆盖OnCreateOptions菜单(菜单,充气机)和OnOptions项Selected(菜单项)。如果要在片段或活动中添加重写方法,请使用这些快捷方式查找可用的重写方法

对于EclipseIDE-Alt+Shift+S 对于Android Studio-Alt+Insert

在setContentView()之后也给setHasOptions菜单(true)替换此代码

@Override
    public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu,MenuInflater inflater)
    {
        inflater.inflate(R.menu.action_bar_menu, menu);
        //super.onCreateOptionsMenu(menu, inflater);
    }

with

    @Override
public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu,MenuInflater inflater)
{

      menu.add(0, R.drawable.setting_iconn, R.id.action_search, "Setting").setIcon(R.drawable.setting_iconn).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

    //super.onCreateOptionsMenu(menu, inflater);
}

这是有效的…

为什么OnOptions ItemSelected没有被覆盖?另外,如果您在片段上执行此操作,请确保调用
sethaspoptionsmenu(true)onActivityCreated();参考@PedroOliveira我更新了我的问题…检查itTry删除super.onCreateOptions菜单(菜单,充气机)@PedroOliveira…不工作…我删除了super.onCreateOption菜单,它显示已单击..但未执行我的方法在Fragment类中@ᏕᏗᎷᎷᎩᏇᏗᏕᏋᏋᎷ 您的
onoptionItemSelected(菜单项)
在片段中?调用
sethasOptions菜单(true)从片段的onCreate方法我可以从FragmentActivity调用SetHasOptionMenu吗?我尝试调用onCreate,给出错误更改…PrepareoptionMenu..就像你真的需要片段中的另一个实用程序而不是FragmentActivity一样?检查我的编辑我有SherlockFragment活动…我创建了幻灯片菜单…在Shelock Librry的帮助下,上面提到的是幻灯片菜单中使用的片段类。没有人提到过,无法帮助,从未使用过该库。很抱歉
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.action_bar_menu, menu);
    return true;
}
@Override
    public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu,MenuInflater inflater)
    {
        inflater.inflate(R.menu.action_bar_menu, menu);
        //super.onCreateOptionsMenu(menu, inflater);
    }

with

    @Override
public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu,MenuInflater inflater)
{

      menu.add(0, R.drawable.setting_iconn, R.id.action_search, "Setting").setIcon(R.drawable.setting_iconn).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

    //super.onCreateOptionsMenu(menu, inflater);
}