불편을 드려 죄송합니다. 난 당신이 매개 변수 조각에서 인수를 가져 오지 못했습니다.
public class FragmentPlaySong extends Fragment {
....
private ArrayList<Song> songList;
private int randomList = 0;
private int currentSongPosition = 0;
....
public static FragmentPlaySong newInstance(ArrayList<Song> songList, int randomList, int position){
FragmentPlaySong fragmentPlaySong = new FragmentPlaySong();
Bundle args = new Bundle();
args.putSerializable("songs",songList);
args.putInt("randomList",randomList);
args.putInt("position",position);
fragmentPlaySong.setArguments(args);
return fragmentPlaySong;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_play_song, container, false);
......
return view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
songList = (ArrayList<Song>) getArguments().getSerializable("songs");
randomList = getArguments().getInt("randomList");
currentSongPosition = getArguments().getInt("position");
}
@Override
public void onActivityCreated(Bundle state) {
super.onActivityCreated(state);
....
}
내가
public class MainActivity extends Activity {
private ListView lstSong;
private ArrayList<Song> songs = new ArrayList<Song>();
private int randomList = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
....
lstSong = (ListView) findViewById(R.id.lstsong);
lstSong.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
FragmentPlaySong fragmentPlaySong = new FragmentPlaySong();
fragmentPlaySong.newInstance(songs,randomList,position);
getFragmentManager().beginTransaction().replace(R.id.FrgPlaySong, fragmentPlaySong).commit();
}
});
}
....
}
내가있는 ListView에서 이벤트 클릭의 조각을 호출하는 곳에서 활동 클래스가를받을 인스턴스를 생성 한에 조각을 확장하는 클래스를 가지고위의 설명 된 선, 특히 Fragment를 호출하기 위해 제시 한 문제로 인해 onCreate 이벤트를 호출 할 때 오류가 발생합니다. 조각
10-14 16:52:37.291 20744-20744/pe.com.mkella.simpleamp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: pe.com.mkella.simpleamp, PID: 20744
java.lang.RuntimeException: Unable to start activity ComponentInfo{pe.com.mkella.simpleamp/pe.com.mkella.simpleamp.MainActivity}: android.view.InflateException: Binary XML file line #31: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
Fragmen의 onCreate 메소드를 제거하면 오류가 발생하지 않지만 인수의 값을 가져올 수 없다는 것을 알았습니다.
귀하의 도움에 감사드립니다.
PD : 대신 활동의 FragmentActivity를 사용하는 나의 나쁜 영어
당신이 게시 예외주의를 당신을 위해하는 XML 파일에 문제를 나타냅니다 라인 # 31. 액티비티/프래그먼트 레이아웃에 XML을 게시 할 수 있습니까? – emerssso
emerssso 내 activity_main.xml http://pastebin.com/k2VNrEq6 –