Java 如何从片段开始活动?

Java 如何从片段开始活动?,java,android,Java,Android,我有3个碎片和3号碎片上的一个按钮。当我按下那个按钮时,我想启动一个名为Baigimas的活动,但它不起作用。当我在模拟器中按下按钮时,我的程序关闭 Fragment3.java public class Fragment3 extends Fragment{ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = infla

我有3个碎片和3号碎片上的一个按钮。当我按下那个按钮时,我想启动一个名为Baigimas的活动,但它不起作用。当我在模拟器中按下按钮时,我的程序关闭

Fragment3.java

public class Fragment3 extends Fragment{

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment3_layout, container, false);


    View.OnClickListener listnr=new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), Baigimas.class);
            startActivity(intent);
        }
    };

    Button btn =(Button) v.findViewById(R.id.button);
    btn.setOnClickListener(listnr);

    return v;
}}
以下是我在日志中看到的内容:

03-31 05:51:45.166    1937-1937/bandymas.viewpagerexample I/art﹕ Not late-enabling -Xcheck:jni (already on)
03-31 05:51:45.518    1937-1962/bandymas.viewpagerexample D/OpenGLRenderer﹕ Render dirty regions requested: true
03-31 05:51:45.521    1937-1937/bandymas.viewpagerexample D/﹕ HostConnection::get() New Host Connection established 0xae0cfdb0, tid 1937
03-31 05:51:45.554    1937-1937/bandymas.viewpagerexample D/Atlas﹕ Validating map...
03-31 05:51:47.776    1937-1950/bandymas.viewpagerexample I/art﹕ Background sticky concurrent mark sweep GC freed 2039(140KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 1891KB/1891KB, paused 131.931ms total 163.748ms
03-31 05:51:47.898    1937-1962/bandymas.viewpagerexample D/﹕ HostConnection::get() New Host Connection established 0xae0cff40, tid 1962
03-31 05:51:47.912    1937-1962/bandymas.viewpagerexample I/OpenGLRenderer﹕ Initialized EGL, version 1.4
03-31 05:51:47.924    1937-1962/bandymas.viewpagerexample D/OpenGLRenderer﹕ Enabling debug mode 0
03-31 05:51:47.945    1937-1962/bandymas.viewpagerexample W/EGL_emulation﹕ eglSurfaceAttrib not implemented
03-31 05:51:47.946    1937-1962/bandymas.viewpagerexample W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xae0e7860, error=EGL_SUCCESS
03-31 05:51:47.988    1937-1950/bandymas.viewpagerexample I/art﹕ Background partial concurrent mark sweep GC freed 326(35KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 1866KB/3MB, paused 1.087ms total 144.656ms
03-31 05:51:48.750    1937-1962/bandymas.viewpagerexample W/EGL_emulation﹕ eglSurfaceAttrib not implemented
03-31 05:51:48.750    1937-1962/bandymas.viewpagerexample W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xae0e7860, error=EGL_SUCCESS
03-31 05:51:57.303    1937-1937/bandymas.viewpagerexample D/AndroidRuntime﹕ Shutting down VM
    --------- beginning of crash
03-31 05:51:57.305    1937-1937/bandymas.viewpagerexample E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: bandymas.viewpagerexample, PID: 1937
    android.content.ActivityNotFoundException: Unable to find explicit activity class {bandymas.viewpagerexample/bandymas.viewpagerexample.Baigimas}; have you declared this activity in your AndroidManifest.xml?
            at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1761)
            at android.app.Instrumentation.execStartActivity(Instrumentation.java:1485)
            at android.app.Activity.startActivityForResult(Activity.java:3736)
            at android.app.Activity.startActivityForResult(Activity.java:3697)
            at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:826)
            at android.support.v4.app.Fragment.startActivity(Fragment.java:896)
            at bandymas.viewpagerexample.Fragment3$1.onClick(Fragment3.java:25)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="bandymas.viewpagerexample" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/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>

按如下方式更新您的清单 试试看

    <activity
        android:name="<full package name>.Baigimas"
        android:screenOrientation="portrait"  >
    </activity>

在清单中添加您的活动

<activity
    android:name=".Baigimas"/>

深入查看日志:

android.content.ActivityNotFoundException: Unable to find explicit activity class {bandymas.viewpagerexample/bandymas.viewpagerexample.Baigimas}; have you declared this activity in your AndroidManifest.xml?
它显然告诉您:您不能部署
Baigima.java
活动。 因此,通过添加以下行来完成您的
AndroidManifest.xml

<activity
    android:name="<your-activity-baigimas-path>.Baigimas"
    ......
>
</activity>


发生了什么?除非在清单中未定义活动,否则对我来说很好。。。但它会抛出一个好的、明显的异常……”“不起作用”并不是一个问题陈述。如果需要帮助,您需要添加更多关于正在发生的事情的详细信息。共享STACKTRACE检查您的android清单文件并在那里添加您的Baigimas活动。我的包名是bandymas.ViewPageReSample,但是当我使用它时,我得到了一个错误:bandymas.ViewPageReSample.Baigimas“不可分配给”android.app.Activity“你的Baigimas如何扩展?你需要从Activity或其后代扩展你的Baigimas。解决了这个问题。看来我把Baigimas.java文件搞乱了,不知怎么的,它只有一个:公共类Baigimas{}。