Я не понял, что вы пытаетесь выполнить с помощью этой архитектуры ... Прежде всего, если вы используете Class2 только для инициализации макета MainClass , чем вы не должны расширять Деятельность в классе 2.
Что я могу предложить, это:
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");
}
}
и для MainClass :
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");
}
}
Если вы пытаетесь сделать что-то иное, чем это, то, пожалуйста, вернитесь с тем, что вы действительно хотите.