gpt4 book ai didi

单击 ListView 项时,Android- Activity 组不会启动新 Activity

转载 作者:行者123 更新时间:2023-11-29 18:18:43 27 4
gpt4 key购买 nike

我目前有一个包含 3 个选项卡的 tabview。 1 选项卡加载 ActivityGroup,然后加载 listview。我有这个,所以我可以加载不同的 Activity 并查看并仍然显示选项卡。当我单击 listview 上的第一个项目时,它会完美地加载所有内容并完全按照我的意愿执行。但是,当我单击列表中的第二项时,出现日志猫错误。它应该加载一个新的 Activity 和新的 View 。我不确定我这样做是否正确,非常感谢您的帮助。下面的代码和日志猫。

播放列表组类:

public class PlaylistGroup extends ActivityGroup{

public static PlaylistGroup group;

// Need to keep track of the history if you want the back-button to work properly,
//don't use this if your activities requires a lot of memory.

private ArrayList<View> history;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>();
group = this;

// Start the root activity within the group and get its view
View view = getLocalActivityManager().startActivity("PlaylistActivity", new
Intent(this,PlaylistActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();

// Replace the view of this ActivityGroup
replaceView(view);

}

public void replaceView(View v) {
// Adds the old one to history
history.add(v);
// Changes this Groups View to the new View.
setContentView(v);
}

//so you can go back and forth and keep the tab layout
public void back() {
if(history.size() > 0) {
history.remove(history.size()-1);
setContentView(history.get(history.size()-1));
}else {
finish();
}
}

public void onBackPressed() {
PlaylistGroup.group.back();
return;
}

ListView 类:

public class PlaylistActivity extends ListActivity{

private static final String TAG = PlaylistActivity.class.getSimpleName();

// Data to put in the ListAdapter
private String[] sdrPlaylistNames = new String[] {
"Best of June 2011", "Best of May 2011", "Dubstep",
"House", "Other"};

private ListAdapter sdrListAdapter;
Intent playbackServiceIntent, playbackServiceIntent1;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.playlists_layout);
//fill the screen with the list adapter
playlistFillData();
}

public void playlistFillData() {
//create and set up the Array adapter for the list view
ArrayAdapter sdrListAdapter = new ArrayAdapter(this, R.layout.list_item, sdrPlaylistNames);
setListAdapter(sdrListAdapter);
}

//set up the on list item Click
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//create a switch so that each list item is a different playlist
switch(position){
case 0:
Intent BOJintent = new Intent(this, BOJAudioActivity.class);

// Create the view using PlaylistGroup's LocalActivityManager
View view = PlaylistGroup.group.getLocalActivityManager()
.startActivity("show_city", BOJintent
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();

// Again, replace the view
PlaylistGroup.group.replaceView(view);

playbackServiceIntent = new Intent(this, BOJAudioService.class);
Log.d(TAG, "Made Intent");
startService(playbackServiceIntent);
Log.d(TAG, "started Service");

break;
case 1:
Log.d(TAG, "stop service");
getApplicationContext().stopService(playbackServiceIntent);
Log.d(TAG, "service stopp'd");

Intent BOJintenttest = new Intent(this, TestActivity.class);
// Create the view using PlaylistGroup's LocalActivityManager
View view2 = PlaylistGroup.group.getLocalActivityManager()
.startActivity("show_city", BOJintenttest
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();

// Again, replace the view
//PlaylistGroup.group.replaceView(view2);
// Log.d(TAG, "Made Intent");
// startActivity(BOJintenttest);
// Log.d(TAG, "started a");

break;
case 2:
break;

}


}


}

日志猫:

07-14 12:19:12.291: ERROR/AndroidRuntime(6810): FATAL EXCEPTION: main
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): android.content.ActivityNotFoundException: Unable to find explicit activity class {ravebox.dev.sdr/ravebox.dev.sdr.TestActivity}; have you declared this activity in your AndroidManifest.xml?
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.app.ActivityThread.resolveActivityInfo(ActivityThread.java:1568)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:277)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at ravebox.dev.sdr.PlaylistActivity.onListItemClick(PlaylistActivity.java:74)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.widget.ListView.performItemClick(ListView.java:3513)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1849)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.os.Handler.handleCallback(Handler.java:587)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.os.Handler.dispatchMessage(Handler.java:92)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.os.Looper.loop(Looper.java:123)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at android.app.ActivityThread.main(ActivityThread.java:3835)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at java.lang.reflect.Method.invoke(Method.java:507)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
07-14 12:19:12.291: ERROR/AndroidRuntime(6810): at dalvik.system.NativeStart.main(Native Method)

最佳答案

像这样设置 AndroidManifest.xml 的 Activity 部分:

<application android:label="@string/app_name" android:icon="@drawable/icon">
<activity android:name=".FirstActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".TestActivity"></activity>

</application>

关于单击 ListView 项时,Android- Activity 组不会启动新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6698173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com