如何从自定义列表视图中单击项目启动不同的活动?

2023-12-13

我遵循了许多教程,例如http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html还关注了这里提出的问题如何使自定义ListView在单击列表项时打开其他活动?然而,在尝试了这里的答案之后(如何使自定义ListView在单击列表项时打开其他活动?)每当我从列表视图中选择一个项目时,我的应用程序就会停止。 我的主要活动代码:

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){ 
      };
    });}
}

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

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();
	}

}

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

</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.3 11-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();
}

}

活动主列表.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>

活动列表视图.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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从自定义列表视图中单击项目启动不同的活动? 的相关文章

  • Android Intent通过jar

    我开发了一个 Android 应用程序 它有一个 UI 设计 如用户名 密码 在我在另一个应用程序中使用 Jar i 之后 我将我的应用程序转换为 jar 这意味着我将我的应用程序转换为库项目 我遵循此方法 1 我将 jar 添加到参考库路
  • 从另一个包启动活动

    我有这个清单
  • 从资产文件夹加载时,电子邮件意图中的图像预览未显示

    我有类似以下代码 public void shareImageInEmail String imageUri Intent emailIntent new Intent Intent ACTION SEND emailIntent setT
  • Android:如果 AsyncTask 位于单独的类中,如何从 AsyncTask 更新 UI?

    我讨厌内部阶级 我有一个主要活动启动 短命 AsyncTask 异步任务是在一个单独的文件中 不是主要活动的内部类 我需要异步任务从主活动更新文本视图 我知道如果 AsyncTask 是内部类 我可以从 onProgressUpdate 更
  • Android:如何在每个(列表)活动中拥有共享菜单而不重写重写方法?

    我知道 Android 提供了一些可以重写的有用方法来定义菜单 Override public boolean onCreateOptionsMenu Menu menu menu add 0 AIS 0 Activity Inventor
  • Android 在显示闪屏时将 url 预加载到 WebView 中

    我有一个带有启动屏幕的应用程序 几秒钟后会打开具有 WebView 的主要活动 问题是 只有这样 主 Activity 才会开始加载 URL 这有时需要几秒钟的时间 双重等待似乎很愚蠢 然而 我预加载 WebView 的尝试不太成功 问题的
  • Android:上下文是否影响用于取消警报的filterEquals()?

    要取消闹钟 我使用alarmManager cancel pendingIntent 根据 Android 开发者的说法Removes any alarms with a matching Intent Any alarm of any t
  • 拦截浏览器中的链接以打开我的 Android 应用程序

    我希望能够在用户单击给定模式的 URL 时提示我的应用程序打开链接 而不是允许浏览器打开它 这可能是当用户位于浏览器的网页 电子邮件客户端或新创建的应用程序的 WebView 中时 例如 从手机中的任何位置单击 YouTube 链接 您将有
  • 是什么让一个 singleTask 活动有 2 个实例?

    根据docs https developer android com guide topics manifest activity element lmode singleTask 活动不能有多个实例 我的应用程序的唯一活动是 single
  • 完成另一个活动的活动

    我有 3 个活动 A B 和 C A 导致 B B 再导致 C 我希望能够在 A 和 B 之间来回移动 但我希望一旦 C 开始就完成 A 和 B 我了解如何通过意图启动 C 时关闭 B 但是当 C 启动时如何关闭 A In your onC
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 如何更改Android应用程序的页面?

    我是安卓新手 我已经设计了由许多页面组成的应用程序 任何人都有源代码或任何可以让我知道如何构建它的东西 例如 当我单击按钮时 我希望它将页面更改为下一页 谢谢你卡 运行通过第一个应用程序教程 https developer android
  • 如何在Android中获取铃声名称?

    我允许我的用户在我的应用程序中选择通知铃声 我想存储声音的 URI 以及人类可读的声音标题 到目前为止 URI 代码运行良好 Uri uri intent getParcelableExtra RingtoneManager EXTRA R
  • Android onStop(或离屏)活动的内存管理

    我想要实现的目标 减少不再出现在屏幕上的活动的内存使用量 即另一个活动已启动 此活动仍然位于导航堆栈中的能力 因此我假设我必须在 onStart 中重新构建 onStop 中被破坏的内容 但不确定当所有视图 按钮都是使用布局构建时如何做到这
  • getActivity() 与 FragmentActivity: android

    我正在使用这个类 A 它扩展了另一个抽象类 并且这个抽象类扩展了 FragmentActivity 并且在 A 类中的一个函数中 我想为我当前的活动 A 获取 getActivity 但是每当我使用 getActivity 时 它都会给出我
  • 如何正确触发 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 意图?

    如文档中所述 持有 REQUEST IGNORE BATTERY OPTIMIZATIONS 权限的应用程序可以触发系统对话框 让用户直接将应用程序添加到白名单 而无需进入设置 该应用程序会触发 ACTION REQUEST IGNORE
  • Android,如何读取我的应用程序中的二维码?

    在我的应用程序中 我需要读取二维码 我在网上搜索并找到了 Zing 代码 但是很多开发人员在使用它时遇到了问题 而且它似乎有问题 如果我假设我的客户在他们的设备上安装了二维码阅读器 我如何使用这些应用程序并通过隐式意图调用它们 如果用户没有
  • Kotlin:将数据从适配器传递到活动

    我尝试从以下位置传递我的数据adapter给我的另一个activity with a putExtra但是当我单击列表中的一个项目移至第二个项目时activity 没有检索到任何数据 并且不显示我输入的默认文本 另一种方法呢 或者我想念它什
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例

随机推荐