startactivity()不是从一个扩展ListActivity内部类工作 [英] startactivity() not working from inner class that extends ListActivity
问题描述
标题基本上说明了一切。下面code不抛出任何错误,它只是不启动新的活动。低于code。
我曾尝试修改 startActivity(新意图(mCtx,NewActivity.class));
读 startActivity(新意图(MyListActivity.this, NewActivity.class));
我已经在Eclipse与AVD测试此。
在这个任何想法,将AP preciated - !谢谢
公共类MyListActivity扩展ListActivity {私人语境mCtx;
MyContentObserver mContentObserver;@覆盖
公共无效的onCreate(捆绑onSavedInstance){
super.onCreate(onSavedInstance);
的setContentView(R.layout.calls_list); mContentObserver =新MyContentObserver(本); 。this.getApplicationContext()getContentResolver()registerContentObserver(CallLog.Calls.CONTENT_URI,真实,mContentObserver)。}私有类MyContentObserver扩展ContentObserver {
私人语境mCtx;
公共MyContentObserver(上下文CTX){
超(NULL);
mCtx = CTX;
} @覆盖
公共无效的onChange(布尔selfChange){
super.onChange(selfChange);
startActivity(新意图(mCtx,NewActivity.class));
}
}
}
可能的原因1
该活动尚未宣布。
您必须将活动添加到您的的AndroidManifest.xml
您应该添加到您的<应用>
标记中的的AndroidManifest.xml
:
<活动机器人:名字=package.name.NewActivity>
<! - 在这里,如果你想添加一个意图过滤器 - >
< /活性GT;
可能的原因2
的的onChange
方法实际上并不运行。
请使用以下code来验证的onChange方法实际上被调用:
公共类MyListActivity扩展ListActivity {
MyContentObserver mContentObserver; @覆盖
公共无效的onCreate(捆绑onSavedInstance){
super.onCreate(onSavedInstance);
的setContentView(R.layout.calls_list); mContentObserver =新MyContentObserver(); 。this.getApplicationContext()getContentResolver()registerContentObserver(CallLog.Calls.CONTENT_URI,真实,mContentObserver)。
} 私有类MyContentObserver扩展ContentObserver {
公共MyContentObserver(){
超(NULL);
} @覆盖
公共无效的onChange(布尔selfChange){
super.onChange(selfChange);
Log.d(MyListActivity.MyContentObserver,的onChange);
startActivity(新意图(MyListActivity.this,NewActivity.class));
}
}
}
您也可以尝试从的onCreate
开展活动,以确保它可以启动。
Title basically says it all. The below code doesn't throw any errors, it just doesn't start the new activity. Code below.
I have tried modifying startActivity(new Intent(mCtx, NewActivity.class));
to read startActivity(new Intent(MyListActivity.this, NewActivity.class));
I have been testing this in Eclipse with an AVD.
Any thoughts on this would be appreciated - thanks!
public class MyListActivity extends ListActivity {
private Context mCtx;
MyContentObserver mContentObserver;
@Override
public void onCreate(Bundle onSavedInstance) {
super.onCreate(onSavedInstance);
setContentView(R.layout.calls_list);
mContentObserver = new MyContentObserver(this);
this.getApplicationContext().getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, mContentObserver);
}
private class MyContentObserver extends ContentObserver {
private Context mCtx;
public MyContentObserver(Context ctx ) {
super(null);
mCtx = ctx;
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
startActivity(new Intent(mCtx, NewActivity.class));
}
}
}
Possible cause 1
The activity has not been declared.
You have to add the activity to your AndroidManifest.xml
You should add this to your <application>
tag in your AndroidManifest.xml
:
<activity android:name="package.name.NewActivity">
<!-- Add an intent filter here if you wish -->
</activity>
Possible cause 2
The onChange
method doesn't actually run.
Please use the code below to verify that the onChange method actually gets called:
public class MyListActivity extends ListActivity {
MyContentObserver mContentObserver;
@Override
public void onCreate(Bundle onSavedInstance) {
super.onCreate(onSavedInstance);
setContentView(R.layout.calls_list);
mContentObserver = new MyContentObserver();
this.getApplicationContext().getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, mContentObserver);
}
private class MyContentObserver extends ContentObserver {
public MyContentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.d("MyListActivity.MyContentObserver", "onChange");
startActivity(new Intent(MyListActivity.this, NewActivity.class));
}
}
}
You could also try launching the activity from onCreate
to make sure it can be launched.
这篇关于startactivity()不是从一个扩展ListActivity内部类工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!