문제

방금 ListView 항목 중 하나를 클릭 할 때 시작 해야하는 일부 활동을 작성했습니다.처음 ListView 항목을 클릭하면 앱이 충돌하는 활동을 시작하는 대신 "능력"을 시작해야합니다.어떤 사람들은이 문제를 해결하는 방법을 알려 줍니까?

여기에 내 주된 파일이 있습니다.

package pcsalt.example.customlistviewdemo;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;


public class MainActivity extends Activity  {

ListView lvDetail;
Context context = MainActivity.this;
ArrayList<ListData> myList = new ArrayList<ListData>();

String[] title = new String[] {
        "Above & Beyond", "Afrojack", "DJ 3", "DJ 4",
        "DJ 5", "DJ 6", "DJ 7", "DJ 8"
};
String[] desc  = new String[] {
        "56:58", "58:49", "60:00", "60:00",
        "60:00", "60:00", "60:00", "60:00"
};
int[]    img   = new int[]    {
        R.drawable.star3, R.drawable.star3, R.drawable.star3, R.drawable.star3,
        R.drawable.star3, R.drawable.star3, R.drawable.star3, R.drawable.star8
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    lvDetail = (ListView) findViewById(R.id.lvCustomList);
    // insert data into the list before setting the adapter
    // otherwise it will generate NullPointerException  - Obviously
    getDataInList();
    lvDetail.setAdapter(new MyBaseAdapter(context, myList));
}

private void getDataInList() {
    for(int i=0;i<8;i++) {
        // Create a new object for each list item
        ListData ld = new ListData();
        ld.setTitle(title[i]);
        ld.setDescription(desc[i]);
        ld.setImgResId(img[i]);
        // Add this object into the ArrayList myList
        myList.add(ld);
    }
    lvDetail.setOnItemClickListener(new OnItemClickListener() 
    {
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position, long id) 
        {
             // In the following line "v" refers to the View returned by the `getView()` method; meaning the clicked View.
             TextView txtName = (TextView)v.findViewById(R.id.lvCustomList);
             String name = txtName.getText().toString();
             switch(name)
             {
                  case "Above & Beyond":
                      Intent intent = new Intent(MainActivity.this, ABActivity.class);
                      startActivity(intent);
                      break;

                  case "Afrojack":
                       Intent intent1 = new Intent(MainActivity.this, AfrojackActivity.class);
                       startActivity(intent1);
                       break;

                  //And so on and so forth....
             }

        }
    });
.

고맙습니다.

도움이 되었습니까?

해결책

이러한 활동을

처럼 매니페스트에 추가합니다.
<activity android:name=".ABActivity" />
<activity android:name=".AfrojackActivity" />
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top