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