2017-06-13 176 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