我正在尝试使用动态添加的片段。 我的2个片段被调用:library_view和controls_view以及main_layout.xml是主要布局。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.fragmentstest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的主要课程是MainActivity.java。我检查了Android私有库选项。
import com.example.fragmentstest.R;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
public class MainActivity extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
//add fragments programatically
//ref to frag manager
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.present_activity_fragment, new LibraryActivity());
fragmentTransaction.add(R.id.select_fragment, new SelectActivity());
fragmentTransaction.commit();
}
}
我在<activity>
中使用了android:name,因为它出现在auto-suggets中,但我想我做错了。
也尝试失败:
所以我的问题是,如何确定android:name字段的确切值?
我的代码中的MainActivity类扩展了Activity,两个片段扩展了Fragments类。
这是错误日志:
07-04 19:00:05.933: E/AndroidRuntime(18127): java.lang.RuntimeException: Unable to instantiate application com.example.fragmentstest.MainActivity: java.lang.ClassNotFoundException: Didn't find class "com.example.fragmentstest.MainActivity" on path: DexPathList[dexElements=[zip file "/data/app/com.example.fragmentstest-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.fragmentstest-2, /vendor/lib, /system/lib]]
答案 0 :(得分:0)
更改
<activity android:name="MainActivity"
到
<activity android:name=".MainActivity"
答案 1 :(得分:0)
您必须在活动代码的第一行中提及您的包名称 像这样
package com.SHINE.ui;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Mapactivity extends Activity implements OnClickListener,
TranslationListner, OnTouchListener {
这里我的XML清单中的代码是
<activity
android:name="com.SHINE.ui.Mapactivity"