好的,所以我把它简化为最低限度,以便解决和发出我的问题。
我有两节课。第二个类扩展了第一个类,并且有一个简单的toast消息。我从第一个oncreate调用第二类toast方法尝试并显示toast。程序中没有报告错误并编译。当它运行时,它会立即崩溃。如果我取消对第二类的调用,并将烤面包机放在第一类,它就可以工作,所以我知道烤面包机是正确的。
头等舱
package com.example.testingclasses;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class FirstClass extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first_class);
SecondClass toaster = new SecondClass();
toaster.toastSC();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.first_class, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
第二课
package com.example.testingclasses;
import android.content.Context;
import android.widget.Toast;
public class SecondClass extends FirstClass {
public void toastSC(){
Context context = getApplicationContext();
CharSequence text = "Toast from second class";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
让我知道是否需要日志猫,但我确定这是一个代码问题。这里引用了几个站点,但我根本无法让它工作。哦,并做了一个像这样的简单的,但在Java中使用print语句并运行它并且所有调用都有效,所以这就是Android中的内容,据我所知,我根本就没有得到它。
感谢
答案 0 :(得分:0)
继承很糟糕。为什么不执行以下操作?
public class SecondClass {
public void toastSC(Context context) {
CharSequence text = "Toast from second class";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
并从您的Activity类
中调用它new SecondClass().toastSC(this);
答案 1 :(得分:-1)
你不应该创建第二个活动。在清单中使用SecondClass
,它将从SecondClass
创建实例,然后使用this
实例调用函数
SecondClass toaster = (SecondClass)this;
toaster.toastSC();