[英]How to go to a particular activity on list item click?
我正在 android 中開發一個應用程序,我在其中創建了幾個項目的列表視圖。 我想在每個列表項單擊上調用 class。這是我的代碼
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...
}
問題是,當我單擊第一個項目時它崩潰但單擊其他項目會顯示消息但是當我單擊該項目以進行下一個活動時它崩潰我試圖遵循這個 stackoverflow 問題但它不起作用{ 如何從 ListView 跳轉到下一個 Activity } 這里是 log cat 的一部分
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
最重要的文件是
**
**
<?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>
**
**
請看一下代碼並幫助我
提前致謝..
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;
}
}
}
對於每個 class,您必須在 Androidmanifest.xml 中添加 Activity。 並表現得像..
<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>
您是否在 AndroidManifest.xml 文件中正確地將abc.class
注冊為 Activity ? 那會導致崩潰。
請在 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):請求時間失敗:java.net.SocketException:協議不支持地址族
<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>
只是一個例子試試......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.