我怎样才能启动项目点击从自定义列表视图不同的活动? [英] How can i start a different activity on item click from a custom listview?

查看:105
本文介绍了我怎样才能启动项目点击从自定义列表视图不同的活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我也跟着无数tuitorials如 HTTP ://www.java$c$cgeeks.com/2013/09/android-listview-with-adapter-example.html 也跟着在这里问<一个问题href="http://stackoverflow.com/questions/20778181/how-to-make-custom-listview-to-open-other-activities-when-clicking-list-item">How进行自定义的ListView单击列表项时打开其他的活动? 在这里尝试的答案(<一后,但是href="http://stackoverflow.com/questions/20778181/how-to-make-custom-listview-to-open-other-activities-when-clicking-list-item">How进行自定义的ListView单击列表项时打开其他的活动?)我的应用程序保持停止每当我从我的列表视图中选择一个项目。 我的主要活动code:

公共类MainActivity延伸活动{ ListView控件列表; 的String []网= { 通知 学校, 什么是热, 告诉一个朋友, 打我们了, 设置, 关于&放大器;帮助 }; @覆盖 保护无效的onCreate(包savedInstanceState){ super.onCreate(savedInstanceState); 的setContentView(R.layout.activity_main); CustomList适配器=新 CustomList(MainActivity.this,网络,imageId); 名单=(ListView控件)findViewById(R.id.list); list.setAdapter(适配器); list.setOnItemClickListener(新AdapterView.OnItemClickListener(){ @覆盖                 公共无效onItemClick(适配器视图&LT;&GT;母公司视图中查看,                                         INT位置,长的id){ 开关(位置){ 情况下0:意向newActivity =新的意图(MainActivity.this,Notifications.class); startActivity(newActivity); 打破; 案例1:意向newActivity1 =新的意图(MainActivity.this,School.class); startActivity(newActivity1); 打破; 案例2:意向newActivity2 =新的意图(MainActivity.this,Whats_hot.class); startActivity(newActivity2); 打破; 案例3:意向newActivity3 =新的意图(MainActivity.this,Tellafriend.class); startActivity(newActivity3); 打破; 案例4:意向newActivity4 =新的意图(MainActivity.this,Hitusup.class); startActivity(newActivity4); 打破; 案例5:意向newActivity5 =新的意图(MainActivity.this,Settings.class);            startActivity(newActivity5);            打破;   案例6:意向newActivity6 =新的意图(MainActivity.this,AboutHelp.class);            startActivity(newActivity6);            打破;    } } @燮pressWarnings(未使用) 公共无效的onClick(视图v){       };     });} }

下面是活动(学院)之一的code我试图启动:

公共类学校延伸活动{ 公共无效的onCreate(包savedInstanceState){         super.onCreate(savedInstanceState);         的setContentView(R.layout.detail); 意图newActivity1 =新意图(); 的setResult(RESULT_OK,newActivity1);     完(); } }

在我的清单我补充这一点:

&LT; /活性GT;         &LT;活动机器人:通知NAME =&GT;&LT; /活性GT;             &LT;活动机器人:名称=学校&GT;&LT; /活性GT;                 &LT;活动机器人:名称=。Whats_hot&GT;&LT; /活性GT;                     &LT;活动机器人:名称=。Tellafriend&GT;&LT; /活性GT;                         &LT;活动机器人:HitusupNAME =&GT;&LT; /活性GT;                             &LT;活动机器人:设置名称=&GT;&LT; /活性GT;                                 &LT;活动机器人:名称=。AboutHelp&GT;             

我的logcat的: 11-10 14:25:58.080:W / dalvikvm(13150):拒绝重新启动DEX/system/framework/hwframework.jar 11-10 14:25:59.360:我/的Adreno200东瀛(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:我/的Adreno200东瀛(13150):建立日期:12年10月26日星期五 11-10 14:25:59.360:我/的Adreno200东瀛(13150):本地分公司: 11-10 14:25:59.360:我/的Adreno200东瀛(13150):远程分支:QUIC / jb_rel_2.0.3 11-10 14:25:59.360:我/的Adreno200东瀛(13150):本地修补程序:否 11-10 14:25:59.360:我/的Adreno200东瀛(13150):重建科:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010 + NOTHING 11-10 14:26:00.450:I /编舞(13150):跳过90帧!该应用程序可能会做它的主线程的工作太多了。 11-10 14:26:03.230:W / dalvikvm(13150):主题ID = 1:螺纹退出与未捕获的异常(组= 0x413fe438)

有什么不对的地方,我不能see.I'm新的Andr​​oid开发,并从你们的帮助将非常AP preciated。

解决方案

您code运行良好。我做到了不Customadapter。所有你需要的是如下。

MainActivity.java

 公共类MainActivity延伸活动{


    的String []网= {
              通知
              学校,
              什么是热,
              告诉一个朋友,
              打我们了,
              设置,
              关于&放大器;帮助
      };

   @覆盖
   保护无效的onCreate(包savedInstanceState){
      super.onCreate(savedInstanceState);
      的setContentView(R.layout.activity_mainlist);

      ArrayAdapter&LT;字符串&GT;适配器=新的ArrayAdapter&LT;字符串&GT;(这一点,
      R.layout.activity_listview,网页);

      ListView控件列表=(ListView控件)findViewById(R.id.list);
      list.setAdapter(适配器);

      list.setOnItemClickListener(新AdapterView.OnItemClickListener(){
          @覆盖
            公共无效onItemClick(适配器视图&LT;&GT;母公司视图中查看,
                                    INT位置,长的id){
                开关(位置){
                情况下0:意向newActivity =新的意图(MainActivity.this,School.class);
                startActivity(newActivity);
                打破;


             }

            }
        @燮pressWarnings(未使用)
        公共无效的onClick(视图v){
            };
        });

   } //结束的OnCreate


} // endactivity
 

School.java

 公共类学校延伸活动{
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.school);


    意图newActivity1 =新意图();
    的setResult(RESULT_OK,newActivity1);
    //完();
}

}
 

activity_mainlist.xml

 &LT; LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直
工具:上下文=。ListActivity&GT;

   &LT;的ListView
   机器人:ID =@ + ID /列表
   机器人:layout_width =match_parent
   机器人:layout_height =WRAP_CONTENT&GT;
   &LT; / ListView控件&GT;

 &LT; / LinearLayout中&GT;
 

activity_listview.xml

 &LT; XML版本=1.0编码=UTF-8&GT?;
&LT;! - 单货品设计 - &GT;
&LT; TextView中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:ID =@ + /标记
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:填充=10dip
    机器人:TEXTSIZE =16dip
    机器人:TEXTSTYLE =黑体&GT;
&LT; / TextView的&GT;
 

AndroidManifest.xml中

 &LT; XML版本=1.0编码=UTF-8&GT?;
&LT;舱单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
包=com.example.zzztest2
安卓版code =1
机器人:VERSIONNAME =1.0&GT;

&LT;用途-SDK
    安卓的minSdkVersion =16
    机器人:targetSdkVersion =21/&GT;

&lt;应用
    机器人:allowBackup =真
    机器人:图标=@可绘制/ ic_launcher
    机器人:标签=@字符串/ APP_NAME&GT;
    &LT;活动
        机器人:名称=。MainActivity
        机器人:标签=@字符串/ APP_NAME&GT;
        &LT;意向滤光器&gt;
            &lt;作用机器人:名称=android.intent.action.MAIN/&GT;

            &LT;类机器人:名称=android.intent.category.LAUNCHER/&GT;
        &所述; /意图滤光器&gt;
    &LT; /活性GT;
    &LT;活动机器人:名称=com.example.zzztest2.School机器人:标签=@字符串/ APP_NAME&GT; &LT; /活性GT;
&LT; /用途&gt;
 

i followed numerous tuitorials like http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html Also followed the questions asked here How to make custom ListView to open other activities when clicking list item? However after trying the answers here(How to make custom ListView to open other activities when clicking list item?) my app keeps stopping whenever i select an item from my listview. My main activity code:

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

Here is the code of one of the activities (School)am trying to start :

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

}

On my manifest i added this:

</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">
            

My logcat: 11-10 14:25:58.080: W/dalvikvm(13150): Refusing to reopen boot DEX '/system/framework/hwframework.jar' 11-10 14:25:59.360: I/Adreno200-EGL(13150): : EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010_msm8625_JB_REL_2.0.3_Merge_release_AU (Merge) 11-10 14:25:59.360: I/Adreno200-EGL(13150): Build Date: 10/26/12 Fri 11-10 14:25:59.360: I/Adreno200-EGL(13150): Local Branch: 11-10 14:25:59.360: I/Adreno200-EGL(13150): Remote Branch: quic/jb_rel_2.0.3 11-10 14:25:59.360: I/Adreno200-EGL(13150): Local Patches: NONE 11-10 14:25:59.360: I/Adreno200-EGL(13150): Reconstruct Branch: AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010 + NOTHING 11-10 14:26:00.450: I/Choreographer(13150): Skipped 90 frames! The application may be doing too much work on its main thread. 11-10 14:26:03.230: W/dalvikvm(13150): threadid=1: thread exiting with uncaught exception (group=0x413fe438)

There's something wrong somewhere that i cannot see.I'm new to android development and any help from you guys would be very much appreciated.

解决方案

Your code is running fine. I made it without Customadapter. All you need is below.

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

School.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>

这篇关于我怎样才能启动项目点击从自定义列表视图不同的活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆