Java 创建对象并运行方法
创建对象并运行方法: 它编译得很好,但应用程序在启动时立即崩溃:( 我实现了接口和所有。。 发生什么事了Java 创建对象并运行方法,java,android,class,Java,Android,Class,创建对象并运行方法: 它编译得很好,但应用程序在启动时立即崩溃:( 我实现了接口和所有。。 发生什么事了 public Button b = (Button)findViewById(R.id.button0); MainActivity.java public class MainActivity extends AppCompatActivity { public interface MyInterfcae { void test0(Context cont
public Button b = (Button)findViewById(R.id.button0);
MainActivity.java
public class MainActivity extends AppCompatActivity
{
public interface MyInterfcae
{
void test0(Context context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Test t = new Test();
t.test0(this);
}
}
Test.java
public class Test extends MainActivity implements MainActivity.MyInterfcae
{
Context context;
@Override
public void test0(final Context context)
{
this.context = context;
Button b = (Button) ((Activity)context).findViewById(R.id.button0);
b.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Toast toast = Toast.makeText(context, "Implemented!", Toast.LENGTH_SHORT);
toast.show();
}
});
}
}
它编译得很好,但应用程序在启动时立即崩溃:( 我实现了接口和所有。。 发生什么事了
public Button b = (Button)findViewById(R.id.button0);
此链接出现错误。您尚未扩展与此活动相关的布局文件,正在尝试访问button0。因此,为了解决此错误,请在方法中传递布局文件实例,然后使用该实例执行findViewById()
请这样做:-
MainActivity.java
public class MainActivity extends AppCompatActivity
{
public interface MyInterfcae
{
void test0(Context context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Test t = new Test();
t.test0(this);
}
}
Test.java
public class Test extends MainActivity implements MainActivity.MyInterfcae
{
Context context;
@Override
public void test0(final Context context)
{
this.context = context;
Button b = (Button) ((Activity)context).findViewById(R.id.button0);
b.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0) {
Toast toast = Toast.makeText(context, "Implemented!", Toast.LENGTH_SHORT);
toast.show();
}
});
}
}
公共类测试扩展了MainActivity
?测试t=new Test();
有什么问题?“测试t=new Test();”对象不是这样创建的吗?当然不是Android框架的活动!@EpicPandaForce,它对测试有效,但没有在多个活动上实现它。调试:“java.lang.RuntimeException:无法启动activity ComponentInfo”:(您能帮我一下吗?下面有一大堆行指定崩溃发生的确切位置感谢您的帮助我尝试传递“public Button b=(Button)findViewById(R.id.button0)”;“在方法内部,它仍然崩溃。你不能传递它。你必须传递上下文。我已经更新了答案。请看@xmarcioras