在我的应用程序中,我在Tabview一侧显示List,在一个选项卡中,当我尝试启动新活动onclick列表视图触摸事件时。我想在网络视图中开始一项新活动。
showNewsListView.setAdapter(listAdapter);
showNewsListView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Log.v("status ","tab on position"+position);
Intent myIntent = new Intent(BizTab.this, MainView.class);
startActivity(myIntent);
}
});
getUrlData(baseUrl);
}
如果我运行这么多代码应用程序崩溃所以我只是找到它的解决方案,我应该在asyncrouniously开始一个新的活动,所以现在我这样做
showNewsListView.setAdapter(listAdapter);
showNewsListView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) { Log.v("status ","tab on position"+position);
new ShowFullNews().execute();
}
});
getUrlData(baseUrl);
}`
`showNewsListView.setAdapter(listAdapter);
showNewsListView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Log.v("status ","tab on position"+position);
new ShowFullNews().execute();
}
});
getUrlData(baseUrl);
}`
然后我的代码崩溃了,只是给出了这两个警告
没有给出错误如果我在onTouch和post执行的两个地方开始一个新的活动,那么我的代码就是woking但是它首先显示屏幕,然后它自动进行并刷新该屏幕,这看起来不太好。所以如何避免它。请帮助我,并忽略语法错误,我的工作代码是
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Log.v("status ","tab on position"+position);
//set bundle to send data into other activity
b.putInt("total", 10);
b.putInt("position",position);
b.putStringArray("allurls", allsNewsUrls);
b.putString("returnname", "BizTab");
b.putString("footertext","Biz");
b.putInt("tabid", 3);
Intent myIntent = new Intent(BizTab.this, MainView.class);
myIntent.putExtras(b);
startActivity(myIntent);
new ShowFullNews().execute();
}
});
protected void onPostExecute(Long result) { try {
Intent myIntent2 = new Intent(BizTab.this, MainView.class);
startActivity(myIntent2);
} catch (Exception e) {
Log.v("error","error in starting new activity");
e.printStackTrace();
}
}`
日志生成和我的应用程序自动关闭。
12-07 11:55:18.684: WARN/InputManagerService(72): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44067388
12-07 11:55:20.792: VERBOSE/status(419): tab on position0
12-07 11:55:20.814: INFO/ActivityManager(72): Starting activity: Intent { cmp=org.nuvus/.MainView (has extras) }
12-07 11:55:20.872: DEBUG/PhoneWindow(419): couldn't save which view has focus because the focused view com.android.internal.policy.impl.PhoneWindow$DecorView@43ea45d8 has no id.
12-07 11:55:21.023: VERBOSE/status(419): mainView oncreate called
12-07 11:55:21.452: VERBOSE/status(419): onStartcalled
12-07 11:55:21.962: INFO/ActivityManager(72): Displayed activity org.nuvus/.MainView: 1072 ms (total 1072 ms)
12-07 11:55:22.082: INFO/AndroidRuntime(419): AndroidRuntime onExit calling exit(0)
12-07 11:55:22.173: INFO/ActivityManager(72): Process org.nuvus (pid 419) has died.
12-07 11:55:22.183: INFO/WindowManager(72): WIN DEATH: Window{43fe6f30 org.nuvus/org.nuvus.Main paused=true}
12-07 11:55:22.202: INFO/WindowManager(72): WIN DEATH: Window{440f9620 org.nuvus/org.nuvus.MainView paused=false}
12-07 11:55:22.283: INFO/UsageStats(72): Unexpected resume of com.android.launcher while already resumed in org.nuvus
12-07 11:55:22.303: WARN/InputManagerService(72): Got RemoteException sending setActive(false) notification to pid 419 uid 10032
请帮帮我......
答案 0 :(得分:2)
而不是:
Intent myIntent = new Intent(BizTab.this, MainView.class);
myIntent.putExtras(b);
startActivity(myIntent);
尝试:
Intent myIntent = new Intent(getBaseContext(), BizTab.this); <!-- or MainView.class-->
myIntent.putExtras(b);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(myIntent);