Android 在片段和图像视图中设置侦听器

Android 在片段和图像视图中设置侦听器,android,Android,当我想使用setOnItemClickListener时,我使用下面的 GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(Tab1Fragment.getContext(null))); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemC

当我想使用setOnItemClickListener时,我使用下面的

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(Tab1Fragment.getContext(null)));
gridview.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            // Send intent to SingleViewActivity
            Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
           // Pass image index
           i.putExtra("id", position);
           startActivity(i);
    } 
});
GridView GridView=(GridView)findviewbyd(R.id.GridView);
setAdapter(新的ImageAdapter(Tab1Fragment.getContext(null));
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
//将意图发送到SingleViewActivity
Intent i=新的Intent(getApplicationContext(),SingleViewActivity.class);
//通过图像索引
i、 putExtra(“id”,位置);
星触觉(i);
} 
});
但对于以下代码,我无法像上面那样执行:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.gridview1, null);
    GridView listView = (GridView) view.findViewById(R.id.mainGrid1);
    listView.setAdapter(new Adapter());
    GridView.setOnItemClickListener(new OnItemClickListener() {         
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            // Send intent to SingleViewActivity
            Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
            // Pass image index
            i.putExtra("id", position);
            startActivity(i);
        }
    });
    return view;
}
创建视图时的公共视图(布局、充气机、视图组容器、捆绑包保存状态){ 视图=充气机。充气(R.layout.gridview1,空); GridView listView=(GridView)view.findViewById(R.id.mainGrid1); setAdapter(新适配器()); GridView.setOnItemClickListener(新的OnItemClickListener(){ public void onItemClick(AdapterView父视图、视图v、整型位置、长id){ //将意图发送到SingleViewActivity Intent i=新的Intent(getApplicationContext(),SingleViewActivity.class); //通过图像索引 i、 putExtra(“id”,位置); 星触觉(i); } }); 返回视图; }
这是一个错误图像

为什么使用类名Gridview而不是声明为listview的Gridview变量

错误代码:-

GridView.setOnItemClickListener(new OnItemClickListener() {         
           public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    // Send intent to SingleViewActivity
               Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
               // Pass image index
               i.putExtra("id", position);
               startActivity(i);
               } });
GridView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
//将意图发送到SingleViewActivity
Intent i=新的Intent(getApplicationContext(),SingleViewActivity.class);
//通过图像索引
i、 putExtra(“id”,位置);
星触觉(i);
} });
将其更改为,而不是上面的代码

listView.setOnItemClickListener(new OnItemClickListener() {         
           public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    // Send intent to SingleViewActivity
               Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);
               // Pass image index
               i.putExtra("id", position);
               startActivity(i);
               } });
listView.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
//将意图发送到SingleViewActivity
Intent i=新的Intent(getApplicationContext(),SingleViewActivity.class);
//通过图像索引
i、 putExtra(“id”,位置);
星触觉(i);
} });
而不是

GridView.setOnItemClickListener(new OnItemClickListener() {  
    ....              
} });
这样做

listView.setOnItemClickListener(new OnItemClickListener() {  
    ....              
} });

GridView是一个类,而listView是一个GridView变量,您已经在代码中初始化了它。使用该选项。

请不要使用
GridView.setOnItemClickListener
,而是使用
listView.setOnItemClickListener()
。我不知道为什么要进行下推表决,我会检查您的建议,但getapplicationContext有一个错误,类型为new adapteeview.onitemclicklisteneruse getActivity()在使用fragmentbut时,请不要使用getapplicationContext,因为getapplicationContext对于类型new adapteeview.OnItemClickListener是未定义的,请使用getActivity(),而不要使用getapplicationContext(),因为您在片段中。