2014-09-10 56 views
-1

我面临着一个问题...我在操作栏上创建了一个项目..当我单击该项目时我的项目单击按钮不响应..For打印我创建了Toast ..To检查Resopnse 但是面包不显示操作栏项目没有响应点击android

这里是更新的片段类..

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" 
/> 

我真的不明白我m什么做错了? 请帮我

编辑

我在片段类

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

的onclick创建 不工作史迪威

+0

为什么onOptionsItemSelected没有被覆盖?另外,如果你正在做一个片段,确保你调用'setHasOptionsMenu(true);'onActivityCreated(); – 2014-09-10 11:34:45

+0

参考http://stackoverflow.com/questions/15035861/fragment-onoptionsitemselected-not-being-called – 2014-09-10 11:44:45

+0

@PedroOliveira我更新了我的问题...检查它 – 2014-09-10 12:10:20

回答

2

编辑:得知您在Fragment

工作后将以下内容添加到您的您Fragment

setHasOptionsMenu(true); 
+0

我的Methode是在片段类 – 2014-09-10 11:35:49

+0

@你的'onOptionsItemSelected(MenuItem项目)'是在片段? – 2014-09-10 11:38:24

+0

调用'setHasOptionsMenu(true);'从您的片段的onCreate方法 – Metehan 2014-09-10 11:39:25

1
@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.action_bar_menu, menu); 
    return true; 
} 

你忘了覆盖的方法,这就是原因。

编辑

对于菜单,应该做这件事是你的FragmentActivity,而不是在一个片段。

但是,看到该链接,如果你想添加,它在你的片段: Android Options Menu in Fragment(马可HC回复)

+0

在片段类? – 2014-09-10 11:43:28

+0

你真的需要fragmentActivity中的另一个工具吗?检查我的编辑 – Sidd 2014-09-10 11:49:11

+0

我有SherlockFragment活动....我创建了幻灯片菜单...与Shelock Librry HElp 上面提到的是片段类滑动菜单中使用 – 2014-09-10 12:03:07

0

通过SIDD的答案是正确的。您需要重写onCreateOptionsMenu(Menu,Inflater)和onOptionsItemSelected(MenuItem)。如果您想在片段或活动中添加重写方法,请使用这些快捷方式来查找可用的重写方法。

对于Eclipse IDE - 键Alt + Shift + S 对于Android的工作室 - Alt +插入

也给setHasOptionsMenu(真)后的setContentView()

0

将这段代码

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

这作品...