2011-06-09 56 views
2

我正在开发一个android应用程序,我在其中创建少量项目的列表视图。 我想呼吁各列表项的一类click.Here是我的代码如何转到列表项目单击的特定活动?

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 

import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 
import com.example.listview.abc; 

public class listview extends Activity implements OnItemClickListener { 
    public ListView lv1; 
    public String[] names = { "Abc", "Xyz", "Pqr", "Jap", "Jay", 
      "bla bla" }; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     lv1 = (ListView) findViewById(R.id.list); 
     lv1.setAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, names)); 
     lv1.setOnItemClickListener(this); 
    } 


    @Override 
    public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
     if(position==0){ 
      Intent i = new Intent(this, abc.class); 
      startActivity(i); 
      //Toast.makeText(this, "You pressed the first item in the list", 
       // Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(this, "You pressed all other items in the list", 
        Toast.LENGTH_SHORT).show(); 

     } 
     // else if(position==1){ 
      // start another activity here... 
    } 

的问题是,当我点击它崩溃的第一个项目,但其他项目点击显示消息,但是当我点击为下一个活动项目崩溃 我试图按照计算器的这个问题,但没有奏效 { How to jump from ListView to next Activity } 这里是日志猫的某些部分

06-09 12:29:52.111: DEBUG/AndroidRuntime(903): Shutting down VM 
06-09 12:29:52.181: INFO/AndroidRuntime(903): NOTE: attach of thread 'Binder Thread #3' failed 
06-09 12:29:52.181: INFO/ActivityManager(60): Start proc com.example.listview for activity com.example.listview/.listview: pid=910 uid=10039 gids={} 
06-09 12:29:52.310: DEBUG/dalvikvm(903): Debugger has detached; object registry had 1 entries 
06-09 12:29:54.670: INFO/ActivityManager(60): Displayed activity com.example.listview/.listview: 2616 ms (total 199904 ms) 
06-09 12:29:55.249: DEBUG/dalvikvm(253): GC_EXPLICIT freed 176 objects/12384 bytes in 3461ms 
06-09 12:29:59.940: DEBUG/dalvikvm(125): GC_EXPLICIT freed 878 objects/48664 bytes in 188ms 
06-09 12:30:05.270: DEBUG/dalvikvm(262): GC_EXPLICIT freed 46 objects/2240 bytes in 183ms 
06-09 12:30:50.140: DEBUG/SntpClient(60): request time failed: java.net.SocketException: Address family not supported by protocol 
06-09 12:32:52.731: DEBUG/dalvikvm(120): GC_FOR_MALLOC freed 9850 objects/473648 bytes in 1222ms 
06-09 12:35:50.171: DEBUG/SntpClient(60): request time failed: java.net.SocketException: Address family not supported by protocol 
06-09 12:40:50.240: DEBUG/SntpClient(60): request time failed: java.net.SocketException: Address family not supported by protocol 
06-09 12:45:50.311: DEBUG/SntpClient(60): request time failed: java.net.SocketException: Address family not supported by protocol 

而且menif EST文件是

**

**

<?xml version="1.0" encoding="utf-8"?> 
>  <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
>  package="com.example.listview" android:versionCode="1" 
>  android:versionName="1.0"> 
>  <application android:icon="@drawable/icon" android:label="@string/app_name"> 
>   <activity android:name=".listview" android:label="@s tring/app_name"> 
>   
>    <intent-filter> 
>     <action android:name="android.intent.action.MAIN" /> 
>     <category android:name="android.intent.category.LAUNCHER" /> 
>    </intent-filter> 
>   </activity> 
>  
>   <activity android:enabled="true" android:name="abc" /> 
>  </application> 
>  <uses-sdk android:minSdkVersion="3" /> 
>   <uses-permission android:name="android.permission.INTERNET" /> 
>  </manifest> 

**

**

请看看代码,并帮助我

在此先感谢..

+0

显示您的logcat的信息在这里。 – Sujit 2011-06-09 07:09:26

+0

如果你扩展'ListActivity',而不是'Activity' – 2011-06-09 07:15:47

+0

@Frosty如果我使用ListActivity – 2011-06-09 07:30:40

回答

2

您是否已在您的AndroidManifest.xml文件中正确地将abc.class注册为活动?那会导致崩溃。

+0

这里是menifest费米是不是精<意图过滤器>我的应用程序崩溃只是更好 \t \t \t \t <操作机器人:名字=” android.intent.action.MAIN” /> \t \t \t \t <类别机器人:名称= “android.intent.category.LAUNCHER”/> \t \t \t \t \t \t \t \t \t \t <活动机器人:启用= “真” 机器人:名称= “ABC”/> \t \t <使用-SDK机器人:的minSdkVersion = “3”/> – 2011-06-09 07:15:07

+0

日志您发布的输出不会显示实际的崩溃:您可以发布崩溃的日志文件吗?此外,发布abc.class,因为这显然有错误。 – Femi 2011-06-09 07:50:38

+0

@ femi在我的abc文件中出现问题现在abc类已被称为Thanx寻求帮助 – 2011-06-09 07:59:33

1

请在AndroidManifest.xml

<activity android:name=".abc" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</activity> 

以下更改也添加下面一行

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

那就试试吧。

如果不成功,请点击下面的链接。

DEBUG/SntpClient(60): request time failed: java.net.SocketException: Address family not supported by protocol

http://developer.appcelerator.com/question/117360/javanetsocketexception-address-family-not-supported-by-protocol

+0

它没有帮助Nik我应该附上我的完整清单文件,因此可能会帮助您建议 – 2011-06-09 07:32:25

+0

请附上完整的AndroidManifest.xml文件 – Nikhil 2011-06-09 07:35:17

+0

I已附加文件Nik – 2011-06-09 07:37:40

3
public class ListItemIntent extends Activity implements OnItemClickListener { 
    ListView lv1; 
    String[] names = { "Abc", "Xyz", "Pqr", "Jap", "Jay", "Blabla" }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     lv1 = (ListView) findViewById(R.id.list); 
     lv1.setAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, names)); 
     lv1.setOnItemClickListener(this); 
    } 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     Intent intent; 
     switch (arg2) { 
      case 0: 
       intent= new Intent(this,Abc.class); 
       startActivity(intent); 
       break; 
      case 1: 
       intent=new Intent(this,Xyz.class); 
       startActivity(intent); 
       break; 
      case 2: 
       intent=new Intent(this,Pqr.class); 
       startActivity(intent); 
       break; 
      case 3: 
       intent=new Intent(this,Jap.class); 
       startActivity(intent);  
       break; 
      case 4: 
       intent=new Intent(this,Jay.class); 
       startActivity(intent);   
       break; 
      case 5: 
       intent=new Intent(this,Blabla.class); 
       startActivity(intent);   
       break; 
      default: 
       break; 
     }  
    } 
} 

你必须在AndroidManifest.xml中添加活动的每个类。和明显的如..

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".ListItemIntent" 
       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="Abc"></activity> 
    <activity android:name="Blabla"></activity> 
    <activity android:name="Jap"></activity> 
    <activity android:name="Jay"></activity> 
    <activity android:name="Pqr"></activity> 
    <activity android:name="Xyz"></activity> 
</application> 

0
<activity android:name="com.something.something.abc" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.ABC" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</activity> 
<activity android:name="something.package.something.xyz" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.XYZ" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</activity> 

只是一个例子尝试......

相关问题