綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 關於切換Activity 會強制關閉 已加入 </activity>也一樣

[複製連結] 查看: 1162|回覆: 6|好評: 0
跳轉到指定樓層
樓主
darklight | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-6-3 00:58

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
目前正在參考資料寫入 mysql

按照網頁
http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/

的做法,每當要在android 看自己所新增的資料都會強制關閉。

但要新增是沒問題的,而資料庫裡面也有資料。

目前找不出問題,希望有經驗的前輩可以分享一下。

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
whl | 收聽TA | 只看該作者
發表於 2013-6-3 08:13
貼 code 及 log 不然沒有人會知道。
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| darklight | 收聽TA | 只看該作者
發表於 2013-6-3 08:50


MainScreenActivity 端

package com.example.androidhive;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MainScreenActivity extends Activity{

        Button btnViewProducts;
        Button btnNewProduct;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main_screen);

                // Buttons
                btnViewProducts = (Button) findViewById(R.id.btnViewProducts);
                btnNewProduct = (Button) findViewById(R.id.btnCreateProduct);

                // view products click event
                btnViewProducts.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View view) {
                                // Launching All products Activity
                                Intent i = new Intent();
                                i.setClass(MainScreenActivity.this, AllProductsActivity.class);
                                startActivity(i);
                                MainScreenActivity.this.finish();

                        }
                });

                // view products click event
                btnNewProduct.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View view) {
                                // Launching create new product activity
                                Intent i = new Intent();
                                i.setClass(MainScreenActivity.this, NewProductActivity.class);
                                                startActivity(i);
                                                MainScreenActivity.this.finish();

                        }
                });
        }
}


跳至
AllProductsActivity
package com.example.androidhive;

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.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class AllProductsActivity extends ListActivity {

        // Progress Dialog
        private ProgressDialog pDialog;

        // Creating JSON Parser object
        JSONParser jParser = new JSONParser();

        ArrayList<HashMap<String, String>> productsList;

        // url to get all products list
        private static String url_all_products = "http://100.69.246.150:8080/android_connect/get_all_products.php";

        // JSON Node names
        private static final String TAG_SUCCESS = "success";
        private static final String TAG_PRODUCTS = "products";
        private static final String TAG_PID = "pid";
        private static final String TAG_NAME = "name";

        // products JSONArray
        JSONArray products = null;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.all_products);

                // Hashmap for ListView
                productsList = new ArrayList<HashMap<String, String>>();

                // Loading products in Background Thread
                new LoadAllProducts().execute();

                // Get listview
                ListView lv = getListView();

                // on seleting single product
                // launching Edit Product Screen
                lv.setOnItemClickListener(new OnItemClickListener() {

                        @Override
                        public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                                // getting values from selected ListItem
                                String pid = ((TextView) view.findViewById(R.id.pid)).getText()
                                                .toString();

                                // Starting new intent
                                Intent in = new Intent(getApplicationContext(),
                                                EditProductActivity.class);
                                // sending pid to next activity
                                in.putExtra(TAG_PID, pid);
                               
                                // starting new activity and expecting some response back
                                startActivityForResult(in, 100);
                        }
                });

        }

        // Response from Edit Product Activity
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                // if result code 100
                if (resultCode == 100) {
                        // if result code 100 is received
                        // means user edited/deleted product
                        // reload this screen again
                        Intent intent = getIntent();
                        finish();
                        startActivity(intent);
                }

        }

        /**
         * Background Async Task to Load all product by making HTTP Request
         * */
        class LoadAllProducts extends AsyncTask<String, String, String> {

                /**
                 * Before starting background thread Show Progress Dialog
                 * */
                @Override
                protected void onPreExecute() {
                        super.onPreExecute();
                        pDialog = new ProgressDialog(AllProductsActivity.this);
                        pDialog.setMessage("Loading products. Please wait...");
                        pDialog.setIndeterminate(false);
                        pDialog.setCancelable(false);
                        pDialog.show();
                }

                /**
                 * getting All products from url
                 * */
                protected String doInBackground(String... args) {
                        // Building Parameters
                        List<NameValuePair> params = new ArrayList<NameValuePair>();
                        // getting JSON string from URL
                        JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params);
                       
                        // Check your log cat for JSON reponse
                        Log.d("All Products: ", json.toString());

                        try {
                                // Checking for SUCCESS TAG
                                int success = json.getInt(TAG_SUCCESS);

                                if (success == 1) {
                                        // products found
                                        // Getting Array of Products
                                        products = json.getJSONArray(TAG_PRODUCTS);

                                        // looping through All Products
                                        for (int i = 0; i < products.length(); i++) {
                                                JSONObject c = products.getJSONObject(i);

                                                // Storing each json item in variable
                                                String id = c.getString(TAG_PID);
                                                String name = c.getString(TAG_NAME);

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

                                                // adding each child node to HashMap key => value
                                                map.put(TAG_PID, id);
                                                map.put(TAG_NAME, name);

                                                // adding HashList to ArrayList
                                                productsList.add(map);
                                        }
                                } else {
                                        // no products found
                                        // Launch Add New product Activity
                                        Intent i = new Intent(getApplicationContext(),
                                                        NewProductActivity.class);
                                        // Closing all previous activities
                                        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                        startActivity(i);
                                }
                        } catch (JSONException e) {
                                e.printStackTrace();
                        }

                        return null;
                }

                /**
                 * After completing background task Dismiss the progress dialog
                 * **/
                protected void onPostExecute(String file_url) {
                        // dismiss the dialog after getting all products
                        pDialog.dismiss();
                        // updating UI from Background Thread
                        runOnUiThread(new Runnable() {
                                public void run() {
                                        /**
                                         * Updating parsed JSON data into ListView
                                         * */
                                        ListAdapter adapter = new SimpleAdapter(
                                                        AllProductsActivity.this, productsList,
                                                        R.layout.list_item, new String[] { TAG_PID,
                                                                        TAG_NAME},
                                                        new int[] { R.id.pid, R.id.name });
                                        // updating listview
                                        setListAdapter(adapter);
                                }
                        });

                }

        }
}

就強制關閉了

AndroidMainfest.xml 端

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidhive"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:configChanges="keyboardHidden|orientation"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

        <activity
            android:name=".MainScreenActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- All Product Activity -->
        <activity
            android:name=".AllProductsActivity"
            android:label="@string/app_name" >
        </activity>

        <!-- Add Product Activity -->
        <activity
            android:name=".NewProductActivity"
            android:label="@string/app_name" >
        </activity>

        <!-- Edit Product Activity -->
        <activity
            android:name=".EditProductActivity"
            android:label="@string/app_name" >
        </activity>
    </application>


</manifest>




用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
whl | 收聽TA | 只看該作者
發表於 2013-6-3 09:43
darklight 發表於 2013-6-3 08:50
MainScreenActivity 端

package com.example.androidhive;

1.程式不完整
2.請貼出 Log
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
xjxuvup | 收聽TA | 只看該作者
發表於 2013-6-3 09:52
直接把logcat 紅色部分貼出來
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
 樓主| darklight | 收聽TA | 只看該作者
發表於 2013-6-3 10:40
xjxuvup 發表於 2013-6-3 09:52
直接把logcat 紅色部分貼出來

前輩們不好意思,我現在馬上處理^^"
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
xjxuvup | 收聽TA | 只看該作者
發表於 2013-6-3 10:45
本帖最後由 xjxuvup 於 2013-6-3 10:47 編輯

logcat裡面如果有紅色部分,先找Cause by,沒有的話再慢慢找,直接切入問題點,你的AllProductsActivity.java 130行有空值問題

看來應該是"Log.d("All Products: ", json.toString());"??

這行的json.toString()是空的?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則