Tôi ghét mã đăng bài và hỏi lý do tại sao nó không hoạt động, nhưng tôi đang thua lỗ ngay bây giờ. Tôi đã cố gắng để chạy các lớp sau đây, và tôi nhận được một ngoại lệ trong logcat mà tôi không thể giải thích. Ngay cả một tìm kiếm google mang lại kết quả rất ít. Có lẽ tôi không hiểu hệ sinh thái, nhưng ngoại lệ có rất ít thông tin. Ngoại lệ tôi nhận được bên dưới:
03-06 21:50:43.031: E/AndroidRuntime(1013): FATAL EXCEPTION: main
03-06 21:50:43.031: E/AndroidRuntime(1013): android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.content.res.Resources.getResourceName(Resources.java:1659)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.view.ViewPager.populate(ViewPager.java:1012)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.view.ViewPager.populate(ViewPager.java:881)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1366)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
03-06 21:50:43.031: E/AndroidRuntime(1013): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer.doCallbacks(Choreographer.java:562)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer.doFrame(Choreographer.java:532)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.os.Handler.handleCallback(Handler.java:725)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.os.Handler.dispatchMessage(Handler.java:92)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.os.Looper.loop(Looper.java:137)
03-06 21:50:43.031: E/AndroidRuntime(1013): at android.app.ActivityThread.main(ActivityThread.java:5039)
03-06 21:50:43.031: E/AndroidRuntime(1013): at java.lang.reflect.Method.invokeNative(Native Method)
03-06 21:50:43.031: E/AndroidRuntime(1013): at java.lang.reflect.Method.invoke(Method.java:511)
03-06 21:50:43.031: E/AndroidRuntime(1013): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-06 21:50:43.031: E/AndroidRuntime(1013): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-06 21:50:43.031: E/AndroidRuntime(1013): at dalvik.system.NativeStart.main(Native Method)
03-06 21:55:44.231: E/Trace(1033): error opening trace file: No such file or directory (2)
Tôi đã cố gắng di chuyển ViewPager lên nội dung cấp cao nhất (ví dụ: setContent (máy nhắn tin)) nhưng điều đó dường như không hoạt động. Bất kỳ đầu vào được hoan nghênh. Mã bên dưới:
CHỈNH SỬA * Tôi đơn giản hóa ví dụ và tôi vẫn gặp sự cố tương tự.
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
public class AskQuestionActivity extends FragmentActivity
{
private static LayoutParams MATCH_PARENT = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ViewPager pager = new ViewPager(this);
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager())
{
@Override
public int getCount()
{
return 1;
}
@Override
public Fragment getItem(int arg0)
{
return new BoardFragment();
}
});
setContentView(pager);
}
public static class BoardFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState)
{
TextView textView = new TextView(getActivity());
textView.setText("Board");
textView.setGravity(Gravity.CENTER);
LinearLayout layout = new LinearLayout(getActivity());
layout.setLayoutParams(MATCH_PARENT);
layout.addView(textView);
return layout;
}
}
}
Mọi trợ giúp đều được hoan nghênh.
Tôi không nghĩ rằng sự cố nằm trong mã bạn đã hiển thị. Bạn có bất kỳ tệp bố cục XML nào bạn đang sử dụng không? – Eric
Không, không phải trong trường hợp này. Trừ khi biểu hiện của tôi sẽ có ích (tôi biết, tôi ** nên ** có thể đặt bố trí của tôi trong XML, nhưng im chỉ chơi xung quanh với một số công cụ). Trong một giây, tôi nghĩ rằng nó có thể là vì tôi đã không cho một người xem của tôi một kích thước bằng cách gọi pager.setLayoutParam (params); nhưng điều đó cũng không làm được. –
Một cái gì đó đang được coi là tài nguyên khi nó được coi là màu. Tuy nhiên, điều tôi thấy là bạn không có bất kỳ tài nguyên nào được tham chiếu trong mã này. (Tôi nghĩ rằng, một nơi nào đó, '0xFFFFFFFF' được sử dụng thay vì' android.R.color.white', hoặc tương tự.) Lý do tôi đề xuất XML là vì dấu vết ngăn xếp không liên kết ngược với mã của bạn; nhưng nó có thể là từ một Fragment auto-inflation hay cái gì đó. – Eric