Я обладаю фрагментируемостью, проводящим активность и фрагмент. Я получаю ошибку во время выполнения от представления, не созданного для фрагмента до того, как будет вызван фрагментом OncreateView. Трудно определить, каков метод призывного, который не может найти представление, поскольку отладчик, похоже, не может найти правильные номера линии во время шага. < /p>
Я не могу заставить источник правильно прикрепить, чтобы увидеть внутри фрагмента, так как, кажется, существует несоответствие между источником dl'd и .jar < /p>
Я поместил запись log.i в StreatingActivity.oncreateview и ошибка до этого. < /p>
Вот соответствующий Logcat: < /p>
Код: Выделить всё
07-19 10:13:36.091: I/StreamingActivity(9886): onCreate
07-19 10:13:42.271: W/dalvikvm(9886): threadid=1: thread exiting with uncaught exception (group=0x40020560)
07-19 10:13:42.281: E/AndroidRuntime(9886): FATAL EXCEPTION: main
07-19 10:13:42.281: E/AndroidRuntime(9886): java.lang.RuntimeException: Unable to start activity
ComponentInfo{kesten.fragmentstestbed/kesten.fragmentstestbed.FragmentsMainActivity}:
java.lang.IllegalArgumentException: No view found for id 0x7f05002e for fragment
StreamingActivity{4052f810 #0 id=0x7f05002e}
caused by
java.lang.IllegalArgumentException: No view found for id 0x7f05002e for fragment
StreamingActivity{40530948 #0 id=0x7f05002e}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:865)
< /code>
My Java File Snippets: < /p>
public class FragmentsMainActivity extends FragmentActivity {
public final static int STARTUP_ACTIVITY_RESULT=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragments_main);
if(savedInstanceState == null) {
Intent intentStartupActivity = new Intent(this, StartupActivity.class);
if(intentStartupActivity != null)
startActivityForResult(intentStartupActivity, STARTUP_ACTIVITY_RESULT);
// get an instance of FragmentTransaction from your Activity
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
//add a fragment
StreamingActivity streamingActivity = new StreamingActivity();
if (streamingActivity != null) {
fragmentTransaction.add(R.id.streamingactivity, streamingActivity);
fragmentTransaction.commit();
}
}
}
< /code>
Мой фрагмент: < /p>
public class StreamingActivity extends Fragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("StreamingActivity","onCreate")
}
< /code>
мои файлы макета:
"res/layout/main.xml"
< /code>
и "Activity_fragments_main.xml" для моей фрагментирования < /p>
- wrong layout in setContentView() of the onCreate() method of the FragmentActivity.
public void oncreate (Bundle SavedInStanceState) {
super.oncreate (savedInstanceState);
setContentView (r.layout.activity_fragments_main); < /p>
fragment oncreeview < /p>
fragmation < /p>
fragment < /p>
frageview < /p>
fragment < /p>
fragments_main;@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i("StreamingActivity","onCreateView");
View view = inflater.inflate(R.layout.main, container, false);
< /code>
Я предполагаю, что Layoutmanager передает правильное значение для контейнера, то есть, который установлен в fragmentactivity's setContentView (). Но мы никогда не делаем это там в любом случае. Ошибка в logcat возникает до того, как мы введем oncreateview (). < /P>
Единственное, что я могу придумать, это то, что стартапактивность (которая закрыта третьей стороной), называемой после SetContentView, и перед потоковым фактором устанавливает представление содержимого на что -то, кроме r.layout.Activity_fragments_main, который не является родителем -агнатом. /> Проблема, по -видимому, связана с тем фактом, что, хотя активность имеет SetContentView, который можно вызывать всякий раз, когда Fragment только имеет OncreateView (), который называется после фрагментных транзакций, которые начинают фрагмент.>
Подробнее здесь: https://stackoverflow.com/questions/115 ... iew-called