Android 如何解决此问题->;找不到显式活动类

Android 如何解决此问题->;找不到显式活动类,android,android-intent,android-asynctask,android-json,Android,Android Intent,Android Asynctask,Android Json,我有一个来自JSON的带有列表视图的片段布局,但当我单击它们时,我得到了一个错误 06-13 13:17:58.492: E/AndroidRuntime(1542): FATAL EXCEPTION: main 06-13 13:17:58.492: E/AndroidRuntime(1542): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.yeftaandrea.

我有一个来自JSON的带有列表视图的片段布局,但当我单击它们时,我得到了一个错误

06-13 13:17:58.492: E/AndroidRuntime(1542): FATAL EXCEPTION: main
06-13 13:17:58.492: E/AndroidRuntime(1542): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.yeftaandrea.plesirsolo/com.yeftaandrea.plesirsolo.KaranganyarAttractionDetailFragment}; have you declared this activity in your AndroidManifest.xml?
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.app.Activity.startActivityForResult(Activity.java:3390)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.app.Activity.startActivityForResult(Activity.java:3351)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:848)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.support.v4.app.Fragment.startActivity(Fragment.java:878)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at com.yeftaandrea.plesirsolo.KaranganyarAttractionFragment$1.onItemClick(KaranganyarAttractionFragment.java:80)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.widget.AdapterView.performItemClick(AdapterView.java:298)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.widget.AbsListView$1.run(AbsListView.java:3463)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.os.Handler.handleCallback(Handler.java:730)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.os.Looper.loop(Looper.java:137)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at android.app.ActivityThread.main(ActivityThread.java:5103)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at java.lang.reflect.Method.invokeNative(Native Method)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at java.lang.reflect.Method.invoke(Method.java:525)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-13 13:17:58.492: E/AndroidRuntime(1542):     at dalvik.system.NativeStart.main(Native Method)
这是我的源代码:

1.karanganyaratractionfragment

package com.yeftaandrea.plesirsolo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;

import com.yeftaandrea.plesirsolo.adapter.KaranganyarJsonAttractionAdapter;

public class KaranganyarAttractionFragment extends Fragment {

    // URL to get contacts JSON
    // JSON Node names
    public static final String TAG_ID = "ID";
    public static final String TAG_NAME = "Name";
    public static final String TAG_ADDRESS = "Address";
    public static final String TAG_PHONE = "Phone";
    public static final String TAG_CITY = "City";
    public static final String TAG_DESCRIPTION = "Description";
    public static final String TAG_AKSESBILITAS = "Aksesbilitas";
    public static final String TAG_Tiket = "Tiket";
    public static final String TAG_FACILITIES = "Faclilities";
    public static final String TAG_LANTITUDE = "Lantitude";
    public static final String TAG_LONGTITUDE = "Longtitude";
    public static final String TAG_PICPATH = "PicPath";

    // Hashmap for ListView
    ArrayList<HashMap<String, String>> attractionList;
    ListView list;

    KaranganyarJsonAttractionAdapter adapter;

    // Progress Dialog
    private ProgressDialog pDialog;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_attraction_karanganyar, container, false);

        list = (ListView) rootView.findViewById(R.id.list);

        list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                // TODO Auto-generated method stub
                String name = ((TextView) view.findViewById(R.id.Name))
                        .getText().toString();
                String address = ((TextView) view.findViewById(R.id.Address))
                        .getText().toString();
                String phone = ((TextView) view.findViewById(R.id.Phone))
                        .getText().toString();

                Intent i = new Intent(getActivity().getApplicationContext(), KaranganyarAttractionDetailFragment.class);

                i.putExtra("TAG_ID", id);               
                i.putExtra("TAG_NAME", name);   
                i.putExtra("TAG_ADDRESS", address);
                i.putExtra("TAG_PHONE", phone);     
                startActivity(i);
            }
            });

        // Calling async task to get json
        new LoadTask().execute();

        return rootView;
    }

    public void loadAttraction(){
        attractionList = new 
                ArrayList<HashMap<String, String>>();
        JSONParser parser = new JSONParser();

        List<NameValuePair> params = new ArrayList<NameValuePair>();

        try {
            JSONArray attraction = parser.makeHttpRequestArray("http://plesirsolo.meximas.com/plesir/attraction/wisata/karanganyar/", "GET", params);
            // JSONArray attraction = parser.makeHttpRequestArray("http://192.168.56.1:8080/examples/json.html", "GET", params);
            // looping through All messages
            if(attraction!=null){
                for (int i = 0; i < attraction.length(); i++) {
                    JSONObject c = attraction.getJSONObject(i);

                    // Storing each json item in variable
                    String id = c.getString(TAG_ID);
                    String nama = c.getString(TAG_NAME);
                    String address = c.getString(TAG_ADDRESS);
                    String phone = c.getString(TAG_PHONE);
                    String picPath = c.getString(TAG_PICPATH);

                    // creating new HashMap
                    HashMap<String, String> map = new HashMap<String, String>();

                    // adding each child node to HashMap key => value
                    map.put(TAG_ID, id);
                    map.put(TAG_NAME, nama);
                    map.put(TAG_ADDRESS, address);
                    map.put(TAG_PHONE, phone);
                    map.put(TAG_PICPATH, picPath);

                    // adding HashList to ArrayList
                    attractionList.add(map);
                }

                adapter = new KaranganyarJsonAttractionAdapter(
                        getActivity(), attractionList);
            }


        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    private class LoadTask extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Loading Attraction ...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) {
            loadAttraction();
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // dismiss the dialog after getting all products
            pDialog.dismiss();
            super.onPostExecute(result);
            list.setAdapter(adapter);
            Log.i("JSON", "TEST");
            Log.i("JSON", attractionList.toString());
        }       

    }

}
package com.yeftandrea.plesirsolo;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入org.apache.http.NameValuePair;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ListView;
导入android.widget.TextView;
导入com.yeftandrea.plesirsoo.adapter.KaranganyarJsonAttractionAdapter;
公共类KaranganyarAttractionFragment扩展了Fragment{
//获取联系人JSON的URL
//JSON节点名称
公共静态最终字符串标记\u ID=“ID”;
公共静态最终字符串标记_NAME=“NAME”;
公共静态最终字符串TAG_ADDRESS=“ADDRESS”;
公共静态最终字符串TAG_PHONE=“PHONE”;
公共静态最终字符串TAG_CITY=“CITY”;
公共静态最终字符串标记\u DESCRIPTION=“DESCRIPTION”;
公共静态最终字符串标记_AKSESBILITAS=“AKSESBILITAS”;
公共静态最终字符串标记_Tiket=“Tiket”;
公共静态最终字符串TAG_FACILITIES=“Faclilities”;
公共静态最终字符串标记_LANTITUDE=“LANTITUDE”;
公共静态最终字符串标记_longtude=“longtude”;
公共静态最终字符串标记_PICPATH=“PICPATH”;
//ListView的Hashmap
ArrayList吸引列表;
列表视图列表;
KaranganyarJsonAttractionAdapter适配器;
//进度对话框
私人对话;
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.fragment\u attraction\u karanganyar,容器,假);
list=(ListView)rootView.findViewById(R.id.list);
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
//TODO自动生成的方法存根
字符串名称=((TextView)view.findViewById(R.id.name))
.getText().toString();
字符串地址=((TextView)view.findViewById(R.id.address))
.getText().toString();
字符串phone=((TextView)view.findViewById(R.id.phone))
.getText().toString();
Intent i=新的Intent(getActivity().getApplicationContext(),KaranganyarAttractionDetailFragment.class);
i、 putExtra(“标签ID”,ID);
i、 putExtra(“标签名称”,名称);
i、 putExtra(“标签地址”,地址);
i、 putExtra(“标签电话”,电话);
星触觉(i);
}
});
//调用异步任务以获取json
新建LoadTask().execute();
返回rootView;
}
公共吸引物(){
attractionList=新建
ArrayList();
JSONParser=新的JSONParser();
List params=new ArrayList();
试一试{
JSONArray=parser.makeHttpRequestArray(“http://plesirsolo.meximas.com/plesir/attraction/wisata/karanganyar/“,”GET“,params);
//JSONArray=parser.makeHttpRequestArray(“http://192.168.56.1:8080/examples/json.html“,”GET“,params);
//循环浏览所有消息
if(吸引力!=null){
对于(int i=0;ivalue
地图放置(标签标识,标识);
地图放置(标签名称,nama);
地图放置(标签地址,地址);
地图放置(标签电话,电话);
map.put(TAG_PICPATH,PICPATH);
//将哈希列表添加到ArrayList
属性列表。添加(映射);
}
适配器=新的Karanganyarjsonattraction适配器(
getActivity(),attractionList);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
私有类LoadTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=newprogressdialog(getActivity());
pDialog.setMessage(“正在加载吸引…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…参数){
负载吸引();
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//获取所有产品后关闭对话框
pDialog.disclose();
super.onPostExecute(结果);
list.setAdapter(适配器);
Log.i(“JSON”、“TEST”);
Log.i(“JSON”,attractionList.toString());
}       
}
}
  • K
    private ArrayList<HashMap<String, String>> data;
    public ImageLoader imageLoader;
    private Context context;
    public String imageBaseDirectory  = "http://plesirsolo.meximas.com/plesir/images/wisata/";
    
    
    public KaranganyarJsonAttractionAdapter(Context context,
            ArrayList<HashMap<String, String>> attractionList) {
        this.data = attractionList;
        this.context = context;
        imageLoader = new ImageLoader(context);
    }
    
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        if(data != null)
            return data.size();
        return 0;
    }
    
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.list_row2, null);
        }
    
        TextView Name = (TextView)convertView.findViewById(R.id.Name); // name
        TextView Address = (TextView)convertView.findViewById(R.id.Address); // address
        TextView Phone = (TextView)convertView.findViewById(R.id.Phone); // phone
        ImageView PicPath = (ImageView)convertView.findViewById(R.id.list_image); // thumb image
    
        HashMap<String, String> attraction = new HashMap<String, String>();
        attraction = data.get(position);
    
        Log.i("JSON", attraction.toString());
    
        // Setting all values in listview
        Name.setText(attraction.get(KaranganyarAttractionFragment.TAG_NAME));
        Address.setText(attraction.get(KaranganyarAttractionFragment.TAG_ADDRESS));
        Phone.setText(attraction.get(KaranganyarAttractionFragment.TAG_PHONE));
    
        Log.i("JSON", attraction.get(KaranganyarAttractionFragment.TAG_NAME));
        imageLoader.DisplayImage(imageBaseDirectory+attraction.get(KaranganyarAttractionFragment.TAG_PICPATH), position, PicPath);
        return convertView;
    }
    
    // Hashmap for ListView
    ArrayList<HashMap<String, String>> attractionList;
    ListView list;
    
    KaranganyarJsonAttractionDetailAdapter adapter;
    
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
    
        View rootView = inflater.inflate(R.layout.fragment_attraction_karanganyar_detail, container, false);
    
        // Calling async task to get json
        new LoadTask().execute();
    
        return rootView;
    
    
    }
    
    public void loadAttraction(){
        attractionList = new 
                ArrayList<HashMap<String, String>>();
        JSONParser parser = new JSONParser();
    
        List<NameValuePair> params = new ArrayList<NameValuePair>();
    
        try {
            JSONArray attraction = parser.makeHttpRequestArray("http://plesirsolo.meximas.com/plesir/attraction/wisata/karanganyar/", "GET", params);
            // JSONArray attraction = parser.makeHttpRequestArray("http://192.168.56.1:8080/examples/json.html", "GET", params);
            // looping through All messages
            if(attraction!=null){
                for (int i = 0; i < attraction.length(); i++) {
                    JSONObject c = attraction.getJSONObject(i);
    
                    // Storing each json item in variable
                    String id = c.getString(TAG_ID);
                    String nama = c.getString(TAG_NAME);
                    String address = c.getString(TAG_ADDRESS);
                    String phone = c.getString(TAG_PHONE);
                    String picPath = c.getString(TAG_PICPATH);
    
                    // creating new HashMap
                    HashMap<String, String> map = new HashMap<String, String>();
    
                    // adding each child node to HashMap key => value
                    map.put(TAG_ID, id);
                    map.put(TAG_NAME, nama);
                    map.put(TAG_ADDRESS, address);
                    map.put(TAG_PHONE, phone);
                    map.put(TAG_PICPATH, picPath);
    
                    // adding HashList to ArrayList
                    attractionList.add(map);
                }
    
                adapter = new KaranganyarJsonAttractionDetailAdapter(
                        getActivity(), attractionList);
            }
    
    
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    
    private class LoadTask extends AsyncTask<Void, Void, Void> {
    
        @Override
        protected Void doInBackground(Void... params) {
            loadAttraction();
            return null;
        }
    
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            list.setAdapter(adapter);
            Log.i("JSON", "TEST");
            Log.i("JSON", attractionList.toString());
        }       
    
    
    }
    
    private ArrayList<HashMap<String, String>> data;
    public ImageLoader imageLoader;
    private Context context;
    public String imageBaseDirectory  = "http://plesirsolo.meximas.com/plesir/images/wisata/";
    
    public KaranganyarJsonAttractionDetailAdapter(Context context,
            ArrayList<HashMap<String, String>> attractionList) {
        this.data = attractionList;
        this.context = context;
        imageLoader = new ImageLoader(context);
    }
    
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        if(data != null)
            return data.size();
        return 0;
    }
    
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.fragment_attraction_karanganyar_detail, null);
        }
        TextView Name = (TextView)convertView.findViewById(R.id.Name); // name
        TextView Address = (TextView)convertView.findViewById(R.id.Address); // address
        TextView Phone = (TextView)convertView.findViewById(R.id.Phone); // phone
        ImageView PicPath = (ImageView)convertView.findViewById(R.id.list_image); // thumb image
    
        HashMap<String, String> attraction = new HashMap<String, String>();
        attraction = data.get(position);
    
        Log.i("JSON", attraction.toString());
    
        // Setting all values in listview
        Name.setText(attraction.get(KaranganyarAttractionDetailFragment.TAG_NAME));
        Address.setText(attraction.get(KaranganyarAttractionDetailFragment.TAG_ADDRESS));
        Phone.setText(attraction.get(KaranganyarAttractionDetailFragment.TAG_PHONE));
    
        Log.i("JSON", attraction.get(KaranganyarAttractionDetailFragment.TAG_NAME));
        imageLoader.DisplayImage(imageBaseDirectory+attraction.get(KaranganyarAttractionDetailFragment.TAG_PICPATH), position, PicPath);
        return convertView;
    
    }
    
    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.yeftaandrea.plesirsolo.SplashScreen"
            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.yeftaandrea.plesirsolo.MainActivity"
            android:label="@string/app_name" >
        </activity>
    </application>
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    <activity
        android:name=".KaranganyarAttractionDetailFragment">
        </activity>
    
    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.yeftaandrea.plesirsolo.SplashScreen"
            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=".KaranganyarAttractionDetailFragment">
        </activity>
        <activity
            android:name="com.yeftaandrea.plesirsolo.MainActivity"
            android:label="@string/app_name" >
        </activity>
    </application>
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    <activity android:name=".KaranganyarAttractionDetailFragment"></activity>
    
    <application
            android:name="com.yeftaandrea.plesirsolo"
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >