Java 使用意图启动活动时出现日志错误 我试图通过将意图作为数据传递来启动一项新活动 我已经发布了日志 如何解决错误

Java 使用意图启动活动时出现日志错误 我试图通过将意图作为数据传递来启动一项新活动 我已经发布了日志 如何解决错误,java,android,android-intent,Java,Android,Android Intent,分级描述FilterActivity.java public class RatingDescriptionFilterActivity extends Activity { // Declare Variables JSONObject jsonobject; JSONArray jsonarray; ListView listview; ListViewAdapter adapter; ProgressDialog mProgressDialo

分级描述FilterActivity.java

public class RatingDescriptionFilterActivity extends Activity {
    // Declare Variables
    JSONObject jsonobject;
    JSONArray jsonarray;
    ListView listview;
    ListViewAdapter adapter;
    ProgressDialog mProgressDialog;
    ArrayList<HashMap<String, String>> arraylist;
    static String NAME = "rank";
    static String TYPE = "country";
    static String DISTANCE = "distance";
    static String RATING = "rating";
    static String FLAG = "flag";
    
    private String url = "----------------- url----------";

    String TYPE_FILTER;
    String PRICE_FILTER;
    String RATE_FILTER;
    String DISTANCE_FILTER;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get the view from listview_main.xml
        setContentView(R.layout.listview_main);
        
        //Bundle extras = getIntent().getExtras();
        
        TYPE_FILTER = getIntent().getStringExtra("REST1");
        PRICE_FILTER = getIntent().getStringExtra("PriceBar");
        RATE_FILTER = getIntent().getStringExtra("DistanceBar");
        DISTANCE_FILTER = getIntent().getStringExtra("RatingBar");
        
        
        

        // Locate the listview in listview_main.xml
        listview = (ListView) findViewById(R.id.listview);
        
        // Execute DownloadJSON AsyncTask
        new DownloadJSON().execute();
    }

    // DownloadJSON AsyncTask
    private class DownloadJSON extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // Create a progressdialog
            mProgressDialog = new ProgressDialog(RatingDescriptionFilterActivity.this);
            // Set progressdialog title
            //mProgressDialog.setTitle("Fetching the information");
            // Set progressdialog message
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            // Show progressdialog
            mProgressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) {
            // Create an array
            arraylist = new ArrayList<HashMap<String, String>>();
            // Retrieve JSON Objects from the given URL address
            
            
            String newurl = "?" + "Key=" + DISTANCE_FILTER.trim() + "&Key1=" + RATE_FILTER.trim() + "&Key2=" + PRICE_FILTER.trim() + "&Key3=" + TYPE_FILTER.trim();

            Log.i ("newurl", newurl.toString ());
            jsonobject = JSONfunctions.getJSONfromURL("------------url-----------"+newurl);

            Log.i ("jsonobject", jsonobject.toString ());
            try {
                // Locate the array name in JSON
                jsonarray = jsonobject.getJSONArray("restaurants");

                for (int i = 0; i < jsonarray.length(); i++) {
                    HashMap<String, String> map = new HashMap<String, String>();
                    jsonobject = jsonarray.getJSONObject(i);
                    // Retrive JSON Objects
                    map.put(RatingDescriptionActivity.NAME, jsonobject.getString("restaurantNAME"));
                    map.put(RatingDescriptionActivity.TYPE, jsonobject.getString("restaurantTYPE"));
                    map.put(RatingDescriptionActivity.FLAG, "-----url-----"+jsonobject.getString("restaurantIMAGE"));
                    map.put(RatingDescriptionActivity.DISTANCE, jsonobject.getString("restaurantDISTANCE"));
                    map.put(RatingDescriptionActivity.RATING, jsonobject.getString("restaurantRATING"));
                    map.put(RatingDescriptionActivity.PRICE, jsonobject.getString("restaurantPrice"));
                    
                    
                    
                    // Set the JSON Objects into the array
                    arraylist.add(map);
                }
            } catch (JSONException e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {
            // Pass the results into ListViewAdapter.java
            adapter = new ListViewAdapter(RatingDescriptionFilterActivity.this, arraylist);
            // Set the adapter to the ListView
            listview.setAdapter(adapter);
            // Close the progressdialog
            mProgressDialog.dismiss();
        }
    }
}

行是
分级描述FilterActivity.java:87

String newurl=“?”+”Key=“+DISTANCE_FILTER.trim()+”&Key1=“+RATE_FILTER.trim()+”&Key2=“+PRICE_FILTER.trim()+”&Key3=“+TYPE_FILTER.trim()”

filters.java中的搜索栏获取值时出现问题


如何调试错误

我希望您使用的是Eclipse,这样您就可以在这一行设置断点并调试您的应用程序,您还可以使用expressions视图找出距离过滤器、比率过滤器、价格过滤器、类型过滤器的值

以下是调试android应用程序的步骤

1) 您需要在AndroidManifest.xml中的应用程序中设置android:debuggable=“true”。如果尚未设置该设置,则不会启用调试

2) 右键单击项目并选择Debug As->Android应用程序启动应用程序,或者在DDMS透视图中正常运行应用程序,然后在设备窗格中选择正在运行的应用程序并单击绿色bug

3) 一旦遇到断点,您就可以跨过(f6)或跨入(f5)(有关更多命令,请查看“运行”菜单)


干杯

你试过打印“新网址”了吗?你能发布什么是价格吗?距离过滤器、费率过滤器、价格过滤器、类型过滤器。其中至少有一个为空。Log.d()在onCreate中获取这些变量以查看值后,这些变量将被删除。距离过滤器、比率过滤器、价格过滤器和类型过滤器之间的值为空。如果我是你,我将开始检查你在哪里分配这些值你知道什么是NullPointerException以及如何调试/解决它们吗?如果没有,,
        10-21 17:55:46.756: E/AndroidRuntime(1061): FATAL EXCEPTION: AsyncTask #2
10-21 17:55:46.756: E/AndroidRuntime(1061): java.lang.RuntimeException: An error occured while executing doInBackground()
10-21 17:55:46.756: E/AndroidRuntime(1061):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
10-21 17:55:46.756: E/AndroidRuntime(1061):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-21 17:55:46.756: E/AndroidRuntime(1061):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-21 17:55:46.756: E/AndroidRuntime(1061):     at