[英]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.