gpt4 book ai didi

android-intent - 如何从自定义 ListView 中单击项目启动不同的 Activity ?

转载 作者:行者123 更新时间:2023-12-02 03:01:29 24 4
gpt4 key购买 nike

我遵循了许多教程,例如 http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html还关注了此处提出的问题 How to make custom ListView to open other activities when clicking list item?然而,在尝试此处的答案(How to make custom ListView to open other activities when clicking list item?)后,每当我从 ListView 中选择一个项目时,我的应用程序就会停止。我的主要 Activity 代码:

public class MainActivity extends Activity {
ListView list;
String[] web = {
"Notifications",
"School",
"What's Hot",
"Tell a friend",
"Hit us up",
"Settings",
"About & Help"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CustomList adapter = new
CustomList(MainActivity.this, web, imageId);
list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch(position){
case 0: Intent newActivity = new Intent(MainActivity.this, Notifications.class);
startActivity(newActivity);
break;
case 1: Intent newActivity1 = new Intent(MainActivity.this, School.class);
startActivity(newActivity1);
break;
case 2: Intent newActivity2 = new Intent(MainActivity.this, Whats_hot.class);
startActivity(newActivity2);
break;
case 3: Intent newActivity3 = new Intent(MainActivity.this, Tellafriend.class);
startActivity(newActivity3);
break;
case 4: Intent newActivity4 = new Intent(MainActivity.this, Hitusup.class);
startActivity(newActivity4);
break;
case 5: Intent newActivity5 = new Intent(MainActivity.this, Settings.class);
startActivity(newActivity5);
break;
case 6: Intent newActivity6 = new Intent(MainActivity.this, AboutHelp.class);
startActivity(newActivity6);
break;

}

}
@SuppressWarnings("unused")
public void onClick(View v){
};
});}
}

以下是尝试启动的其中一项 Activity (学校)的代码:

public class School extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail);


Intent newActivity1=new Intent();
setResult(RESULT_OK, newActivity1);
finish();
}

}

在我的 list 上我添加了以下内容:

</activity>
<activity android:name=".Notifications"></activity>
<activity android:name=".School"></activity>
<activity android:name=".Whats_hot"></activity>
<activity android:name=".Tellafriend"></activity>
<activity android:name=".Hitusup"></activity>
<activity android:name=".Settings"></activity>
<activity android:name=".AboutHelp">

我的日志猫:11-10 14:25:58.080: W/dalvikvm(13150): 拒绝重新启动 DEX '/system/framework/hwframework.jar'11-10 14:25:59.360:I/Adreno200-EGL(13150)::EGL 1.4高通版本:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010_msm8625_JB_REL_2.0.3_Merge_release_AU(合并)11-10 14:25:59.360:I/Adreno200-EGL(13150):构建日期:2012 年 10 月 26 日星期五11-10 14:25:59.360:I/Adreno200-EGL(13150):本地分支机构:11-10 14:25:59.360:I/Adreno200-EGL(13150):远程分支:quic/jb_rel_2.0.311-10 14:25:59.360:I/Adreno200-EGL(13150):本地补丁:无11-10 14:25:59.360:I/Adreno200-EGL(13150):重建分支:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010 +无11-10 14:26:00.450:我/Choreographer(13150):跳过了 90 帧!应用程序可能在其主线程上做了太多工作。11-10 14:26:03.230: W/dalvikvm(13150): threadid=1: 线程因未捕获的异常而退出 (group=0x413fe438)

有一些我看不到的问题。我是 Android 开发新手,非常感谢你们的帮助。

最佳答案

您的代码运行良好。我是在没有 Customadapter 的情况下做到的。您需要的一切都在下面。

MainActivity.java

public class MainActivity extends Activity {


String[] web = {
"Notifications",
"School",
"What's Hot",
"Tell a friend",
"Hit us up",
"Settings",
"About & Help"
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainlist);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.activity_listview, web);

ListView list = (ListView) findViewById(R.id.list);
list.setAdapter(adapter);

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch(position){
case 0: Intent newActivity = new Intent(MainActivity.this, School.class);
startActivity(newActivity);
break;


}

}
@SuppressWarnings("unused")
public void onClick(View v){
};
});

}//end oncreate


}//endactivity

学校.java

public class School extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.school);


Intent newActivity1=new Intent();
setResult(RESULT_OK, newActivity1);
//finish();
}

}

activity_mainlist.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ListActivity" >

<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>

</LinearLayout>

activity_listview.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Single List Item Design -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"
android:textSize="16dip"
android:textStyle="bold" >
</TextView>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.zzztest2"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
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="com.example.zzztest2.School" android:label="@string/app_name"> </activity>
</application>

关于android-intent - 如何从自定义 ListView 中单击项目启动不同的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26842916/

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