0

i want to update screen which imagebutton two press get new value fromurland update scren what do ido? help me please. when i press img2 button screen not update helpme please how to update parseJSONData(); function wit new url when img2 click????

    public class fourthscreen extends Activity
      TextView Breakfast,Lunch,Supper;
         String SelectMenuAPI;
 String url;

          FourthcreenAdapter fthadapter;


static ArrayList<Long> Category_ID = new ArrayList<Long>();
static ArrayList<String> Category_name = new ArrayList<String>();


         public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fourthscreen);

           url=Utils.SelectMenuAPI;

    listMainMenu = (ListView) findViewById(R.id.listfourthscrMenu);
    date_today = (TextView) findViewById(R.id.date_today);
    Breakfast = (TextView) findViewById(R.id.txtfth1);
    Lunch = (TextView) findViewById(R.id.txtfth2);
    Supper = (TextView) findViewById(R.id.txtfth3);
           fthadapter = new FourthcreenAdapter(fourthscreen.this);
    ImageView img1 = (ImageView) findViewById(R.id.imgfourth1);
    ImageView img2 = (ImageView) findViewById(R.id.imgfourth2);
    ImageView img3 = (ImageView) findViewById(R.id.imgfourth3);
       parseJSONData();

        listMainMenu.setAdapter(fthadapter);



            img2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            url=Utils.SelectMenuAPI2;
             parseJSONData();



        }
    });

                }


 void clearData(){
        Category_ID.clear();
        Category_name.clear();

    }






                  }


 public void parseJSONData(){
       //   CategoryAPI = Utils.CategoryAPI+"?accesskey="+Utils.AccessKey;

        SelectMenuAPI = url;

            clearData();


            try {

                HttpClient client = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000);
                HttpConnectionParams.setSoTimeout(client.getParams(), 15000);
                HttpUriRequest request = new HttpGet(SelectMenuAPI);
                HttpResponse response = client.execute(request);
                InputStream atomInputStream = response.getEntity().getContent();
                BufferedReader in = new BufferedReader(new InputStreamReader(atomInputStream));

                String line;
                String str = "";
                while ((line = in.readLine()) != null){
                    str += line;
                }


                    JSONObject json = new JSONObject(str);
                    JSONArray data = json.getJSONArray("worldpopulation");

                    for (int i = 0; i < data.length(); i++) {
                        JSONObject object = data.getJSONObject(i); 

                    //    JSONObject category = object.getJSONObject("Category");

                        Category_ID.add(Long.parseLong(object.getString("rank")));
                        Category_name.add(object.getString("name"));
                    //    Category_image.add(object.getString("url"));
                        Log.d("Category name", Category_name.get(i));

                    }


            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
            //  IOConnect = 1;
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
        }
4

3 回答 3

0

您应该通知用于处理列表视图中数据的数组适配器。

于 2013-08-02T10:57:29.853 回答
0

如果您想查看某个ImageView是否已被点击:

将此粘贴到以下布局中ImageViews

android:onClick="onClickFunction"

然后创建这个函数,看起来像这样:

public void onClickFunction(View v) {

  swith (v.getid()){
    case R.id.imgfourth1:
      //do something
      break;
    case R.id.imgfourth2:
      //do something
      break;
    case R.id.imgfourth3:
      //do something
      break;

  }
}

parseJSONData()然后,根据单击的视图,使用方法中的启动 AsyncTask doInBackground()

于 2013-08-02T11:07:28.880 回答
0

你的HTTP请求不应该放在主线程FourthcreenAdapter这个类的代码里,获取数据然后调用Adapter的notifyDataSetChanged()方法

于 2013-08-02T11:03:09.743 回答