Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 嘿,我正在一个片段中实现一个gridview…但是我对这些错误一无所知_Android_Gridview_Android Fragments_Nullpointerexception - Fatal编程技术网

Android 嘿,我正在一个片段中实现一个gridview…但是我对这些错误一无所知

Android 嘿,我正在一个片段中实现一个gridview…但是我对这些错误一无所知,android,gridview,android-fragments,nullpointerexception,Android,Gridview,Android Fragments,Nullpointerexception,嘿,我想实现链接中给出的这个网格视图 [连结][1] 但我想在一个片段中做这件事……但在这里,我被这两个错误所困扰 这是我的片段类 我已经标记了我遇到错误的行 public class FragmentGrid extends Fragment{ GridView gridview; GridViewAdapter gridviewAdapter; ArrayList<Item> data = new ArrayList<Item>(); @Override

嘿,我想实现链接中给出的这个网格视图 [连结][1]

但我想在一个片段中做这件事……但在这里,我被这两个错误所困扰

这是我的片段类

我已经标记了我遇到错误的行

public class FragmentGrid extends Fragment{

GridView gridview;
GridViewAdapter gridviewAdapter;
ArrayList<Item> data = new ArrayList<Item>();



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

    // Initialize the GUI Components
    gridview = (GridView) getActivity().findViewById(R.id.gridView);





    fillData(); // Insert The Data
      // Set the Data Adapter
    gridviewAdapter = new GridViewAdapter(getActivity(), R.layout.item_grid, data);
    gridview.setAdapter(gridviewAdapter);


    /* ----- ERRRORR ------*/
    gridview.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
             String message = "Clicked : " + data.get(position).getTitle();
             Toast.makeText(getApplicationContext(), message , Toast.LENGTH_SHORT).show();
        }
    });

}




// Insert The Data
private void fillData()
{
    data.add(new Item("Facebook", getResources().getDrawable(R.drawable.athletics)));
    data.add(new Item("Twitter", getResources().getDrawable(R.drawable.bowls)));
    data.add(new Item("Linked In", getResources().getDrawable(R.drawable.boxing)));
    data.add(new Item("Google", getResources().getDrawable(R.drawable.cycling)));
    data.add(new Item("Yahoo", getResources().getDrawable(R.drawable.netball)));
    data.add(new Item("YouTube", getResources().getDrawable(R.drawable.swimming)));
    data.add(new Item("Flickr", getResources().getDrawable(R.drawable.hockey)));
    data.add(new Item("Whatsapp", getResources().getDrawable(R.drawable.judo)));
    data.add(new Item("Blogger", getResources().getDrawable(R.drawable.triathlon)));
}

}
在接受了阿列克斯巴洛的所有帮助后…我能够解决我的问题。。 最后我的课看起来像这样

public class FragmentGrid extends Fragment{

GridView gridview;
GridViewAdapter gridviewAdapter;
ArrayList<Item> data = new ArrayList<Item>();

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

     RelativeLayout fragmentLayout = (RelativeLayout) inflater.inflate(R.layout.grid_view, container, false);

return fragmentLayout;
}


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

    // Initialize the GUI Components
    gridview = (GridView) getActivity().findViewById(R.id.gridView);



  //  gridview.setOnItemClickListener(this); /* ----- ERRRORR ------*/


    fillData(); // Insert The Data
      // Set the Data Adapter
    gridviewAdapter = new GridViewAdapter(getActivity(), R.layout.item_grid, data);
   gridview.setAdapter(gridviewAdapter);


    gridview.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
             String message = "Clicked : " + data.get(position).getTitle();
             Toast.makeText(getActivity(), message , Toast.LENGTH_SHORT).show();
        }
    });

}




// Insert The Data
private void fillData()
{
    data.add(new Item("Facebook", getResources().getDrawable(R.drawable.athletics)));
    data.add(new Item("Twitter", getResources().getDrawable(R.drawable.bowls)));
    data.add(new Item("Linked In", getResources().getDrawable(R.drawable.boxing)));
    data.add(new Item("Google", getResources().getDrawable(R.drawable.cycling)));
    data.add(new Item("Yahoo", getResources().getDrawable(R.drawable.netball)));
    data.add(new Item("YouTube", getResources().getDrawable(R.drawable.swimming)));
    data.add(new Item("Flickr", getResources().getDrawable(R.drawable.hockey)));
    data.add(new Item("Whatsapp", getResources().getDrawable(R.drawable.judo)));
    data.add(new Item("Blogger", getResources().getDrawable(R.drawable.triathlon)));
}
}

您的片段类未实现McClickListener。试试这个

gridView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        }
    });

所以我没有回答你的问题……把我的代码从onItemCLick放到这里……我现在得到一个错误——AdapterView类型中的setOnItemClickListenerAdapterView.OnItemClickListener方法不适用于参数new OnItemClickListener{}请用新代码更新发布的类,并在setAdapter methodimport android.widget.AdapterView.OnItemClickListener之后移动setOnItemClickListener;检查您的导入之间是否存在此问题,以防删除一个导入android.view.view.OnClickListener;嗯…neva有tht导入…所以添加了它…但现在我在Toast.makeTest方法中的getApplicationContext出现错误。。。。。。简单错误表示类型new AdapterView.OnItemClickListener{}的getApplicationContext方法未定义
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        LinearLayout fragmentLayout = (LinearLayout) inflater.inflate(R.layout.your_fragment_layout_resource, container, false);

        gridView = (GridView) fragmentLayout.findViewById(R.id.yourGridView);
        and here all the rest of the code...

        return fragmenLayout;
    }