Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
Java 如何在Fragment类中从公共静态void调用非静态公共void_Java_Android - Fatal编程技术网

Java 如何在Fragment类中从公共静态void调用非静态公共void

Java 如何在Fragment类中从公共静态void调用非静态公共void,java,android,Java,Android,如何在Fragment类中从公共静态void调用非静态公共void? 或者有没有其他方法可以在(listViewHolder.dot.setOnClickListener(new View.OnClickListener()和public void search3()之间调用 //表2 //公共类Tab2扩展了片段 public void search3() { Toast.makeText( getActivity(),"search3333333: " ,Toast.LENGTH_SHO

如何在Fragment类中从公共静态void调用非静态公共void? 或者有没有其他方法可以在(listViewHolder.dot.setOnClickListener(new View.OnClickListener()和public void search3()之间调用

//表2 //公共类Tab2扩展了片段

public void search3() {

Toast.makeText( getActivity(),"search3333333: " ,Toast.LENGTH_SHORT ).show();

}

public static void search4 (Context context1,String text) {

Toast.makeText( context1,text,Toast.LENGTH_LONG ).show();

Tab2 someClass = new Tab2();

someClass.search3();

}
//CustomAdapter 
//public class CustomAdapter extends BaseAdapter

    listViewHolder.dot.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

Toast.makeText( context,"" +  ff.getText().toString() ,Toast.LENGTH_LONG).show();

Tab2.search4(context,"hi hhhh");

        }
    });

如果要从
OnClickListener
调用
Fragment
Activity
方法,则必须在某个位置存储对该
Fragment
Activity
的引用。类似的操作可能适合您:

public class CustomAdapter extends BaseAdapter {
    private final Tab2 tab2;
    // other fields

    public CustomAdapter(Tab2 tab2, /* other constructor params ... */ ) {
        this.tab2 = tab2;
        // process other params and other initialization
    }

    ...
    @Override
    public View getView (int position, View convertView, ViewGroup parent) {

        ...

        listViewHolder.dot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                tab2.search3();
            }
        });

        ...
    }
}

将公共类CustomAdapter扩展BaseAdapter放入tab2片段类中,如下所示 类CustomAdapter扩展BaseAdapter并删除静态


非常感谢所有

可能重复的图片错误?它在技术上是有效的,但您想使用以前创建的实例吗?感谢帮助,但当来到someClass.search3();给出错误并关闭ActivityTab2是一个片段,对吗?您不能使用
getActivity()
inside
search3()
方法,除非您将片段提交到活动中。非常感谢。这个解决方案在这种情况下有用吗?我是Android编程初学者,我有解决方案。非常感谢。这个解决方案在这种情况下有用吗?我是Android编程初学者,我有解决方案塔里克,你的解决方案是埃森与我的类基本相同,但灵活性较低。当您将
CustomAdapter
类放入
Tab2
类中,即使其成为非静态
内部类
嵌套类
,编译器会隐式地将
Tab2
参数添加到
CustomAdapter
的构造函数中,并将其作为参数添加到cor接听电话。有关详细信息,请参阅。