Как перейти к определенной деятельности по нажатию на элемент списка? - PullRequest
2 голосов
/ 09 июня 2011

Я занимаюсь разработкой приложения для Android, в котором я создаю список из нескольких элементовЯ хочу вызвать класс для каждого элемента списка. Нажмите здесь. Мой кодна элементе для следующего действия он вылетает, я пытался проследить за этим вопросом stackoverflow, но это не сработало*

И файл манифеста:

**

**

<?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>

**

**

Пожалуйста, посмотрите на код и помогите мне

Заранее спасибо ..

Ответы [ 4 ]

3 голосов
/ 09 июня 2011
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;
        }       
    }
}

для каждого класса вы должны добавить Activity в 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>

2 голосов
/ 09 июня 2011

Правильно ли вы зарегистрировали abc.class как активность в файле AndroidManifest.xml? Это может привести к сбою.

1 голос
/ 09 июня 2011

Пожалуйста, измените ниже в 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: семейство адресов не поддерживается протоколом

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

0 голосов
/ 12 февраля 2013
<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>

просто пример попробуйте ......

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...