Android 我无法解决的基本问题
我正在使用Eclipse和Android模拟器。谁能告诉我这里怎么了Android 我无法解决的基本问题,android,android-emulator,Android,Android Emulator,我正在使用Eclipse和Android模拟器。谁能告诉我这里怎么了 // FILE MainClass.java package xxx.yyy; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainClass extends Activity { @Override
// FILE MainClass.java
package xxx.yyy;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutA);
// If this line is enabled, it works fine
Test1();
// but if these lines are enabled, you get FORCE CLOSE
Class2 c2 = new Class2();
C2.Test2();
}
public void Test1() {
setContentView(R.layout.layoutA);
TextView tv = (TextView)findViewById(R.id.DisplayLine);
tv.setText("Start");
}
}
//文件layoutA.xml
如果允许Test1运行,那么就可以了。
如果允许运行Test2,请强制关闭
Class2 c2 = new Class2();
C2.Test2();
检查c2的大写字母
Steve尝试使用startActivity而不是Class2 c2=new Class2()实例化Class2 另外,我注意到您使用c2和c2(区分大小写的错误)
我希望这能对您有所帮助。我不明白您使用此体系结构想要实现什么。。。首先,如果您仅使用Class2初始化MainClass的布局,则不应在Class2中扩展Activity 我的建议是:
package com.s;
import android.app.Activity;
import android.widget.TextView;
public class Class2 {
TextView tv;
Activity activity;
public Class2(Activity activity) {
this.activity = activity;
}
public void Test2() {
activity.setContentView(R.layout.layoutA);
TextView tv = (TextView) activity.findViewById(R.id.DisplayLine);
tv.setText("Start");
}
}
对于main类:
package com.s;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// If this line is enabled, it works fine
Test1();
// but if these lines are enabled, you get FORCE CLOSE
Class2 c2 = new Class2(this);
c2.Test2();
}
public void Test1() {
setContentView(R.layout.layoutA);
TextView tv = (TextView) findViewById(R.id.DisplayLine);
tv.setText("Start");
}
}
如果您正在尝试执行与此不同的操作,请返回您真正想要的操作。我认为您不能像Java中那样使用对象初始化来启动新的活动。不管是哪种方式,都会按照@ASMaitre的建议进行。打开你的logcat,按下带有E字母的圆圈。然后找出哪一行会给你的代码带来错误正如Theresia所说,你对Android缺乏了解。在手机上开发很难,通过Android学习Java更难。我建议先学习Java,然后转向Android。他正试图在Class2的帮助下设置Mainclass的布局。。所以不需要星际触觉。。对于区分大小写的事情:他正在使用eclipse和eclipse,只要他键入“C2”,就立即画一条红色下划线或错误标记。感谢您的快速响应。我使用了StartTactivity,效果很好。
package com.s;
import android.app.Activity;
import android.widget.TextView;
public class Class2 {
TextView tv;
Activity activity;
public Class2(Activity activity) {
this.activity = activity;
}
public void Test2() {
activity.setContentView(R.layout.layoutA);
TextView tv = (TextView) activity.findViewById(R.id.DisplayLine);
tv.setText("Start");
}
}
package com.s;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// If this line is enabled, it works fine
Test1();
// but if these lines are enabled, you get FORCE CLOSE
Class2 c2 = new Class2(this);
c2.Test2();
}
public void Test1() {
setContentView(R.layout.layoutA);
TextView tv = (TextView) findViewById(R.id.DisplayLine);
tv.setText("Start");
}
}