簡體   English   中英

每當我從一項活動轉移到另一項活動時,我的應用程序就會崩潰

[英]my app crashes every time i move from one activity to another

伙計們,我需要您的幫助,我創建了一個包含3個活動(主,線性和表格)的應用,它們如下所示

MainActivity

 package com.hossa.layoutapp;
       import android.app.Activity;
       import android.content.Context;
       import android.content.Intent;
       import android.os.Bundle;
       import android.view.Menu;
       import android.view.View;
       import android.view.View.OnClickListener;
       import android.widget.Button;
       import android.widget.EditText;
       import android.widget.Toast;

       public class MainActivity extends Activity {
       Button Submit1,Table1,Linear1;
       EditText Name1,Email1,Phone1;



       @Override
       protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Submit1=(Button)findViewById(R.id.RelativeSubmit);
        Table1=(Button)findViewById(R.id.RelativeTable);
        Linear1=(Button)findViewById(R.id.RelativeLinear);
        Name1=(EditText)findViewById(R.id.Name1);
        Email1=(EditText)findViewById(R.id.Email1);
        Phone1=(EditText)findViewById(R.id.Phone1);

        Submit1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //providing the user with help explaination//
                Context context=getApplicationContext();
                String message1="your data is submitted";
                int Duration=Toast.LENGTH_LONG;
                Toast t=Toast.makeText(context,message1, Duration);
                t.show();
            }
        });
        Table1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i=new Intent(MainActivity.this,TableActivity.class);
                   startActivity(i);
            }
        });
        Linear1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i=new Intent(MainActivity.this,LinearActivity.class);
                   startActivity(i);
            }
        });
       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
       }

       }

以下是LinearActivity

           package com.hossa.layoutapp;

           import android.app.Activity;
           import android.content.Context;
           import android.content.Intent;
           import android.os.Bundle;
           import android.view.Menu;
           import android.view.View;
           import android.view.View.OnClickListener;
           import android.widget.Button;
           import android.widget.EditText;
           import android.widget.Toast;

           public class LinearActivity {

        public class MainActivity extends Activity {
            Button Submit2,Table2,Relative1;
            EditText Name2,Email2,Phone2;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.linearlayout);
                Submit2=(Button)findViewById(R.id.LinearSubmit);
                Table2=(Button)findViewById(R.id.LinearTable);
                Relative1=(Button)findViewById(R.id.LinearRelative);
                Name2=(EditText)findViewById(R.id.Name2);
                Email2=(EditText)findViewById(R.id.Email2);
                Phone2=(EditText)findViewById(R.id.Phone2);
                Submit2.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        //providing the user with help explaination//
                        Context context=getApplicationContext();
                        String message1="your data is submitted";
                        int Duration=Toast.LENGTH_LONG;
                        Toast t=Toast.makeText(context,message1, Duration);
                        t.show();
                    }
                });
                Table2.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent j=new     Intent(getApplicationContext(),TableActivity.class);
                        startActivity(j);
                    }
                });
                Relative1.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent k=new Intent(getApplicationContext(),MainActivity.class);
                        startActivity(k);
                    }
                });
            }

            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
            }

        }


       }

最后是Table Activity

    package com.hossa.layoutapp;

   import android.app.Activity;
   import android.content.Context;
   import android.content.Intent;
   import android.os.Bundle;
   import android.view.Menu;
   import android.view.View;
   import android.view.View.OnClickListener;
   import android.widget.Button;
   import android.widget.EditText;
   import android.widget.Toast;

   public class TableActivity {

public class MainActivity extends Activity {
    Button Submit3,Relative2,Linear2;
    EditText Name3,Email3,Phone3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tablelayout);
        Submit3=(Button)findViewById(R.id.TableSubmit);
        Relative2=(Button)findViewById(R.id.TableRelative);
        Linear2=(Button)findViewById(R.id.TableLinear);
        Name3=(EditText)findViewById(R.id.Name3);
        Email3=(EditText)findViewById(R.id.Email3);
        Phone3=(EditText)findViewById(R.id.Phone3);
        Submit3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //providing the user with help explaination//
                Context context=getApplicationContext();
                String message1="your data is submitted";
                int Duration=Toast.LENGTH_LONG;
                Toast t=Toast.makeText(context,message1, Duration);
                t.show();
            }
        });
        Linear2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent j=new     Intent(getApplicationContext(),LinearActivity.class);
                startActivity(j);
            }
        });
        Relative2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent k=new Intent(getApplicationContext(),MainActivity.class);
                startActivity(k);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is     present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}


    }

清單文件

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.hossa.layoutapp.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>
    <activity
       android:name="com.hossa.layoutapp.LinearActivity"
        android:label="@string/app_name"
        >
        </activity>
        <activity
        android:name="com.hossa.layoutapp.TableActivity"
        android:label="@string/app_name"
         >
        </activity>
</application>

</manifest>

主要要做的是按下按鈕並移至下一個活動,但它總是崩潰...請幫助

好的,這可能是答案,也可能不是答案,但是我不確定我是否可以在評論中指出這一點,這是非常錯誤且令人困惑的。

例如,在類聲明中

public class LinearActivity {

public class MainActivity extends Activity {

我什至不知道該怎么想,但是沒有理由或不想在每個Activity包含MainActivity 你有你的MainActivity

public class MainActivity extends Activity {

那么您應該以相同的方式聲明其他Activities ,但要使用自己的類名,例如。

public class LinearActivity extends Activity {

解決此問題,如果它不能解決問題,請從崩潰中發布日志。

您的代碼中有2個大錯誤-1s是活動不應作為內部類,如果您的LinearActivity類是活動,則應從Activity擴展它。 第二是當您嘗試呼叫其他活動時

 Intent j=new     Intent(getApplicationContext(),LinearActivity.class);
            startActivity(j);

您總是會遇到錯誤,因為LinearActivity.class不是Activity。

要解決您的問題,只需從Activity擴展LinearActivity並刪除內部MainActivity類

您在表活動中使用該代碼,而線性活動是錯誤的

public class TableActivity {

public class MainActivity extends Activity {

僅使用public class TableActivity extends Activity {

public class Linearactivity extends Activity {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM