Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么切换活动时我的listview为空?_Android_Android Listview_Android Activity - Fatal编程技术网

Android 为什么切换活动时我的listview为空?

Android 为什么切换活动时我的listview为空?,android,android-listview,android-activity,Android,Android Listview,Android Activity,我创建了两个不同的活动来显示具有不同结果的JSON数组,并将其显示到listview中。 首先,我创建菜单活动,用按钮Button1和Button2控制切换活动。 然后,我创建了两个activitiy类Activity1和Activity2,以在listview中显示我的JSON数组。 当我单击按钮1时,它工作并在listview中的Activity1上显示我的JSON数组。 但当我点击按钮2时,它什么也不显示。为什么活动2的列表视图项目丢失 这是我的listview占位符listview占位符

我创建了两个不同的活动来显示具有不同结果的JSON数组,并将其显示到listview中。 首先,我创建菜单活动,用按钮Button1和Button2控制切换活动。 然后,我创建了两个activitiy类Activity1和Activity2,以在listview中显示我的JSON数组。 当我单击按钮1时,它工作并在listview中的Activity1上显示我的JSON数组。 但当我点击按钮2时,它什么也不显示。为什么活动2的列表视图项目丢失

这是我的listview占位符listview占位符:

这是我的菜单活动菜单活动:

这是我在listview WeeklyFlashActivity上显示JSON数组的活动所有活动基本上彼此相似不同的只是获取JSON的URL:

public class WeeklyFlashActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listplaceholder);

        ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
        JSONObject json = JSONfunctions.getJSONfromURL("http://www.greenfields.co.id:502/Service1.svc/json/weeklyflash/id");

        try
        {
            JSONArray  weeklyflash = json.getJSONArray("GetReportResult");

            for(int i=0;i<weeklyflash.length();i++)
            {                       
                HashMap<String, String> map = new HashMap<String, String>();    
                JSONObject e = weeklyflash.getJSONObject(i);

                //map.put("type",  String.valueOf(i));
                map.put("type", e.getString("type"));
                map.put("total", e.getString("total"));

                mylist.add(map);            
            }       
        }
        catch(JSONException e)        
        {
             Log.e("log_tag", "Error parsing data "+e.toString());
        }

        ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.wfid, 
                        new String[] { "type", "total" }, 
                        new int[] { R.id.item_title, R.id.item_subtitle });

        setListAdapter(adapter);
        Button btnClose = (Button) findViewById(R.id.buttonClose);
        btnClose.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Closing SecondScreen Activity
                finish();
            }
        });

    }
}

可能是json出现在不同的url上,可能彼此不同…@Dhereshsingh我检查了所有url,它正确地显示了json格式,不同的只是total的值所有json键都相同?比如说结果?类型?总数?所有的键都是一样的?嗨,试试这个静态数组列表。@Dhereshsingh是的,所有的键都是一样的。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="7dp"
    >
<TextView  
    android:id="@+id/item_title"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:padding="2dp"
    android:textSize="20dp" />
    <TextView  
    android:id="@+id/item_subtitle"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="2dp"
    android:textSize="13dp" />

</LinearLayout>
public class MenuActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // TODO Auto-generated method stub
        Button btnIndonesia = (Button) findViewById(R.id.button1);
        Button btnMalaysia = (Button) findViewById(R.id.button2);
        Button btnSingapore = (Button) findViewById(R.id.button3);
        Button btnHongkong = (Button) findViewById(R.id.button4);

        //Listening to button event
        btnIndonesia.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Starting a new Intent
                Intent indonesiaScreen = new Intent(getApplicationContext(), WeeklyFlashActivity.class);

                startActivity(indonesiaScreen);

            }
        });

        btnMalaysia.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Starting a new Intent
                Intent malaysiaScreen = new Intent(getApplicationContext(), WeeklyFlashMyActivity.class);

                startActivity(malaysiaScreen);

            }
        });

        btnSingapore.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Starting a new Intent
                Intent singaporeScreen = new Intent(getApplicationContext(), WeeklyFlashSgActivity.class);

                startActivity(singaporeScreen);

            }
        });

        btnHongkong.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Starting a new Intent
                Intent hongkongScreen = new Intent(getApplicationContext(), WeeklyFlashHkActivity.class);

                startActivity(hongkongScreen);

            }
        });
    }

}
public class WeeklyFlashActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listplaceholder);

        ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
        JSONObject json = JSONfunctions.getJSONfromURL("http://www.greenfields.co.id:502/Service1.svc/json/weeklyflash/id");

        try
        {
            JSONArray  weeklyflash = json.getJSONArray("GetReportResult");

            for(int i=0;i<weeklyflash.length();i++)
            {                       
                HashMap<String, String> map = new HashMap<String, String>();    
                JSONObject e = weeklyflash.getJSONObject(i);

                //map.put("type",  String.valueOf(i));
                map.put("type", e.getString("type"));
                map.put("total", e.getString("total"));

                mylist.add(map);            
            }       
        }
        catch(JSONException e)        
        {
             Log.e("log_tag", "Error parsing data "+e.toString());
        }

        ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.wfid, 
                        new String[] { "type", "total" }, 
                        new int[] { R.id.item_title, R.id.item_subtitle });

        setListAdapter(adapter);
        Button btnClose = (Button) findViewById(R.id.buttonClose);
        btnClose.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Closing SecondScreen Activity
                finish();
            }
        });

    }
}