downvoting하고이 질문에 대한 투표가 textview의 범위와 관련이 있다고 생각하여 투표를 마쳤다면 ..... 텍스트보기의 범위와 아무 관련이 없습니다.조각간에 데이터를 전달하는 방법은 무엇입니까?
(이 조각이 통과, 응용 프로그램 충돌, 난 내가 잘못하고있는 무슨 모르는 조각 사이에 데이터를 전달할 수 없습니다 ... 나는이 링크를 여기 http://manishkpr.webheavens.com/android-passing-data-between-fragments/
내가 프래그먼트를 사용하고있는 코드가 따라 데이터)
public class FragmentSongs extends Fragment implements Serializable,OnFragmentCreatedListener {
ListView SngList;
ArrayList<SongDetails> Songinfo=null;
AdapterView.AdapterContextMenuInfo info;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
ViewGroup view = (ViewGroup) inflater.inflate(R.layout.fragment_song, null);
SngList = (ListView) view.findViewById(R.id.SongList);
registerForContextMenu(SngList);
//File f=new File(Environment.getExternalStorageDirectory()+"/Music");
File f=new File("/system/");
int j=0;int i=0;
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Songinfo = getSongsFromDirectory(f);
//sorting done below
if (Songinfo.size()>0)
{
for(j=0; j<Songinfo.size();j++)
{
for (i=j+1 ; i<Songinfo.size(); i++)
{
SongDetails a=Songinfo.get(i);
SongDetails b=Songinfo.get(j);
if(a.getSong().toLowerCase().compareTo(b.getSong().toLowerCase())<0)
{
Songinfo.set(i,b);
Songinfo.set(j,a);
}
}
}
SngList.setAdapter(new CustomAdapter(Songinfo));
return view;
}
else return null;
}
OnFragmentCreatedListener listener;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
listener = (OnFragmentCreatedListener) getActivity();
listener.onFragmentCreated(Songinfo);
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement onFragmentCreated");
}
}
frag 멘트 B (수신기 단편)
public class FragmentArtists extends Fragment {
ArrayList<SongDetails> songinfo2;
ViewGroup view;
int s=5;//TextView text;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{Context context;
LayoutInflater lf = getActivity().getLayoutInflater();
view = (ViewGroup) inflater.inflate(R.layout.fragment_artist, null);
// view = lf.inflate(R.layout.test,container, false);
// view = inflater.inflate(R.layout.test,container, false);
s=s+5;
// text=(TextView)view.findViewById(R.id.tt);when i use this,it works fine but i want to do it in the other method
//text.setText("makzzz");when i use this,it works fine but i want to do it in the other method
return view;
}
void setSongList(ArrayList<SongDetails> songinfo)
{ //TextView text=(TextView)this.getView().findViewById(R.id.tt);//when i used this view was not global
TextView text=(TextView)view.findViewById(R.id.tt);//when i used this,view was global;
//TextView text=(TextView)view.findViewById(R.id.tt);
// text=(TextView)super.getView().findViewById(R.id.tt);
text.setText("makzzz");
홀더 활성 방법 (이 활성 단편 보유)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mymusic);
fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, FragmentSongs.class.getName()));
fragments.add(Fragment.instantiate(this, FragmentArtists.class.getName()));
fragments.add(Fragment.instantiate(this, FragmentPlaylists.class.getName()));
fragments.add(Fragment.instantiate(this, FragmentAlbums.class.getName()));
ViewPagerAdapter adapter = new ViewPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager)super.findViewById(R.id.viewpager);
pager.setAdapter(adapter);
pager.setOffscreenPageLimit(4);
pager.setCurrentItem(0);
} public void onFragmentCreated(ArrayList<SongDetails> msg) {
FragmentArtists Obj=(FragmentArtists) fragments.get(1);
Obj.setSongList(msg);
}
}
콜백 클래스 여기
package sourcecode.jazzplayer;
import java.util.ArrayList;
public interface OnFragmentCreatedListener {
public void onFragmentCreated(ArrayList<SongDetails> msg);
}
는 로그 캣
인09-19 23:50:46.851: E/AndroidRuntime(2125): java.lang.NullPointerException
09-19 23:50:46.851: E/AndroidRuntime(2125): at sourcecode.jazzplayer.FragmentArtists.setSongList(FragmentArtists.java:55)
09-19 23:50:46.851: E/AndroidRuntime(2125): at sourcecode.jazzplayer.MyMusic.onFragmentCreated(MyMusic.java:45)
09-19 23:50:46.851: E/AndroidRuntime(2125): at sourcecode.jazzplayer.FragmentSongs.onAttach(FragmentSongs.java:128)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:883)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:823)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.app.Fragment.setUserVisibleHint(Fragment.java:819)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.app.FragmentPagerAdapter.setPrimaryItem(FragmentPagerAdapter.java:130)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.view.ViewPager.populate(ViewPager.java:1066)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.View.measure(View.java:12603)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.View.measure(View.java:12603)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.View.measure(View.java:12603)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
09-19 23:50:46.851: E/AndroidRuntime(2125): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2072)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.View.measure(View.java:12603)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1044)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.os.Handler.dispatchMessage(Handler.java:99)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.os.Looper.loop(Looper.java:137)
09-19 23:50:46.851: E/AndroidRuntime(2125): at android.app.ActivityThread.main(ActivityThread.java:4340)
09-19 23:50:46.851: E/AndroidRuntime(2125): at java.lang.reflect.Method.invokeNative(Native Method)
09-19 23:50:46.851: E/AndroidRuntime(2125): at java.lang.reflect.Method.invoke(Method.java:511)
09-19 23:50:46.851: E/AndroidRuntime(2125): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-19 23:50:46.851: E/AndroidRuntime(2125): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-19 23:50:46.851: E/AndroidRuntime(2125): at dalvik.system.NativeStart.main(Native Method)
이 코드 줄에 오류가 있습니다.
TextView text = (TextView) view.findViewById (R.id.tt); //이 줄 수신기 조각입니다 (fragmentArtist는)
충돌이 무엇인지 알면 도움이 될 수 있습니다. 당신은 logcat을 게시 할 수 있습니까? – andy256
게시 logcat ...하지만 난 다른 방법을 사용하여 조각 사이의 데이터를 전달해야한다고 생각 (예 : widh 인수) – Pauland
@ Pauland 내게 데이터를 전달하는 다른 방법의 링크를주세요 –