2015-09-16 75 views
1

無法解析法秀(android.support.v4.app FragmentManager,java.lang.String中)

import android.app.DialogFragment; 
 
import android.os.Bundle; 
 
import android.view.LayoutInflater; 
 
import android.view.View; 
 
import android.view.ViewGroup; 
 
import android.widget.AdapterView; 
 
import android.widget.ListView; 
 
import android.widget.Toast; 
 

 

 
/** 
 
* Created by jamie on 9/12/2015. 
 
*/ 
 
public class PlayersFragment extends DialogFragment { 
 

 
    ListView lv; 
 
    String[] players = {"arteta", "costa", "reid", "degea", "rooney", "terry"}; 
 

 
    int[] images = {R.drawable.arteta, R.drawable.costa, R.drawable.reid, R.drawable.degea, 
 
      R.drawable.rooney, R.drawable.terry}; 
 

 
    @Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
          Bundle savedInstanceState) { 
 
     View rootView = inflater.inflate(R.layout.dialog, container, false); 
 

 
     //initialize listview 
 
     lv = (ListView) rootView.findViewById(R.id.listView1); 
 

 
     //set dialog title 
 
     getDialog().setTitle("Soccer SuperStars"); 
 

 
     //create adapter obj and set list view to it 
 
     Adapter adapter = new Adapter(getActivity(), players, images); 
 
     lv.setAdapter(adapter); 
 

 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
 
      @Override 
 
      public void onItemClick(AdapterView<?> a, View v, int pos, long id) { 
 
       Toast.makeText(getActivity(), players[pos], Toast.LENGTH_SHORT).show(); 
 
      } 
 
     }); 
 

 

 
     return rootView; 
 

 

 
    } 
 

 

 

 
}

努力創造在Android Studio中一ListView片段並獲得 錯誤

無法解析方法show(android.support.v4.app FragmentManager,java.lang.string)

錯誤是在p.show(fm,"Players Fragment)紅色下劃線,試圖解決這個問題,但無處可去,我真的很感激這個解決方案!謝謝

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.view.View; 
import android.widget.Button; 




public class MainActivity extends FragmentActivity { 

    Button showBtn; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final FragmentManager fm =getSupportFragmentManager(); 
     final PlayersFragment p=new PlayersFragment(); 

     showBtn=(Button)findViewById(R.id.button1); 
     showBtn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       p.show(fm,"Players Fragment"); //error is here 
      } 

     }); 
    } 
} 
+0

是'PlayersFragment'的'DialogFragment'的子類? – Blackbelt

+0

加上'PlayersFragment'代碼 – Rustam

+0

喜,是PlayersFragment是DialogFragment – james

回答

12

我想你正在使用android.app.DialogFragment而不是android.support.v4.app.DialogFragment。只需從支持庫的android.support.v4.app.DialogFragment延伸PlayersFragment即可。或者,如果你的目標不是舊設備,你可以改變getSupportFragmentManager()getFragmentManager()

+1

的PlayersFragment類我沒有嘗試改變getSupportFragmentManager到getFragmentManager但拋出一個錯誤太 – james

+0

我伸出PlayersFragment到類android.support。 v4.app.DialogFragment像你說的Semyon Danilov,這已經解決了我的問題非常感謝你 – james

+0

@james很高興我可以幫助:) –

-1

你必須在類PlayersFragment導入android.support.v4.app.DialogFragment,然後更改getSupportFragmentManager()getFragmentManager()

相關問題