2017-06-13 189 views
0

如何从公共静态调用无效不静态公共无效在片段类? 还是有另一种方式(listViewHolder.dot.setOnClickListener(新View.OnClickListener()和公共无效search3())如何从公共静态调用无效不静态公共静态在片段类

enter image description here // TAB2 //公共类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"); 

     } 
    }); 
之间调用
+1

可能的复制[我想知道的区别静态方法和非静态方法](https://stackoverflow.com/questions/3903537/i-want-to-know-the-difference-between-static-method-and-non-static-method) – Ivar

+0

什么问题与你的照片?它在技术上是有效的,但是你是否想要使用之前创建的实例? – Rogue

+0

感谢您的帮助但它是无效的,当来到someClass.search3();给出错误并关闭活动 –

回答

0

如果你想从你的OnClickListener致电FragmentActivity方法,你必须存储的引用FragmentActivity地方也许这样的事情会为你工作:

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

     ... 
    } 
} 
+0

非常感谢。可能是这种解决方案在这种情况下很有用,而我是Android编程的初学者我已经得到解决方案 –

0

把公共类CustomAdapter延伸BaseAdapter TAB2片段类中像这样 类CustomAdapter延伸BaseAdapter和删除静态

非常感谢你对所有

+0

Tariq,您的解决方案与我的解决方案基本相同,但灵活性较低。当你把'CustomAdapter'类放在'Tab2'类里面,即使它成为非静态的'inner class'或'nested class'时,编译器将'tab2'参数隐式地添加到'CustomAdapter'的构造函数中,并将它作为参数添加到相应的调用。有关详细信息,请参见[嵌套类](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)。 – SergGr