Android 夏洛克:充气布局?

Android 夏洛克:充气布局?,android,android-layout,actionbarsherlock,Android,Android Layout,Actionbarsherlock,我用的是ActionBarSherlock和SherlockDialogFragment。 我的项目有一个小问题,我想在sherlockdialogfragment中显示其他布局,一切都很好,我的问题是,如果我使用imageadapter,只要我知道它应该在imageadapter中使用“this”。但是在公共静态中不能使用“this”,怎么可能呢??我不明白如何在sherlockdialogfragment中显示布局。这是我的问题 ((GridView) gridView).setAdapt

我用的是ActionBarSherlock和SherlockDialogFragment。 我的项目有一个小问题,我想在sherlockdialogfragment中显示其他布局,一切都很好,我的问题是,如果我使用imageadapter,只要我知道它应该在imageadapter中使用“this”。但是在公共静态中不能使用“this”,怎么可能呢??我不明白如何在sherlockdialogfragment中显示布局。这是我的问题

 ((GridView) gridView).setAdapter(new ImageAdapter(this, MOBILE_OS));
这是我的全部代码

  public static class MyDialogFragment extends SherlockDialogFragment {
        int mNum;
        static MyDialogFragment newInstance(int num) {
            MyDialogFragment f = new MyDialogFragment();
            Bundle args = new Bundle();
            args.putInt("num", num);
            f.setArguments(args);
            return f;
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mNum = getArguments().getInt("num");
            int style = DialogFragment.STYLE_NORMAL, theme = 0;
                style = DialogFragment.STYLE_NO_FRAME;
                theme = android.R.style.Theme;

            setStyle(style, theme);

        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
                    final String[] MOBILE_OS = new String[] { "Android", "iOS",
                    "Windows", "Blackberry" };

            View v = inflater.inflate(R.layout.pen_content, container, false);
    View gridView = v.findViewById(R.id.gridView1);
    ((GridView) gridView).setAdapter(new ImageAdapter(this, MOBILE_OS));
            return v;
        }

    }
我应该怎么做来修复mycode。。。 谢谢

编辑…我的问题解决了…但我又问了一个问题…如果我想从gridview事件单击中得到值,我应该怎么做??我添加了setOnClickListener,但我得到了错误

     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
                    final String[] MOBILE_OS = new String[] { "Android", "iOS",
                    "Windows", "Blackberry" };

               View v = inflater.inflate(R.layout.pen_content, container, false);
           View gridView = v.findViewById(R.id.gridView1);
           ((GridView) gridView).setAdapter(new ImageAdapter(getSherlockActivity(), MOBILE_OS));
            gridView.setOnClickListener(new OnItemClickListener() {
                 public void onItemClick(AdapterView<?> parent, View v,
                 int position, long id) {
                     Toast.makeText(getSherlockActivity(),((TextView)v.findViewById(R.id.grid_item_label)).getText(), Toast.LENGTH_SHORT).show();
                    }
                   });
                    return v;
            }
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终字符串[]MOBILE_OS=新字符串[]{“Android”、“iOS”,
“Windows”、“Blackberry”};
视图v=充气机。充气(R.layout.pen_内容物,容器,假);
视图gridView=v.findViewById(R.id.gridView1);
setAdapter(新的ImageAdapter(getSherlockActivity(),MOBILE_OS));
setOnClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
Toast.makeText(getSherlockActivity(),((TextView)v.findViewById(R.id.grid\u item\u label)).getText(),Toast.LENGTH\u SHORT.show();
}
});
返回v;
}
更改

((GridView) gridView).setAdapter(new ImageAdapter(this, MOBILE_OS));
的确如此

((GridView) gridView).setAdapter(new ImageAdapter(getSherlockActivity(),MOBILE_OS));
您似乎有一个类型不匹配,
SherlockFragment
没有扩展您的ImageAdapter可能需要的
上下文

要尝试回答已编辑的问题,请执行以下操作:

((GridView)gridView).setOnItemClickListener(new OnItemClickListener() {
                 public void onItemClick(AdapterView<?> parent, View v,
                 int position, long id) {
                     Toast.makeText(getSherlockActivity(),((TextView)v.findViewById(R.id.grid_item_label)).getText(), Toast.LENGTH_SHORT).show();
                    }
                   });

@ltvie没问题,您应该看看java,以便更好地掌握OOP。@ltvie您应该提出一个新问题,但不管怎样,您遇到了什么错误?我试图回答您编辑过的问题,但请记住,“重用”一个问题并不是最佳选择。如果我编辑的答案不起作用,请问另一个问题。不。你的答案对我来说很好…好的。如果我再次问,我将使用新问题。。。谢谢你的帮助。。。。
GridView gridView = (GridView) v.findViewById(R.id.gridView1);