0

我想在特殊状态时更改可见性

所以我会这样做

else {  
ImageView image_A_wrong = (ImageView)findViewById(R.id.imageView1);
image_A_wrong.setVisibility(View.GONE);
 }

但是在eclipse上出现错误。

你知道为什么吗 ?

我的图像视图

<ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/quo100px"
        android:visibility="gone" />

Tks提前所有

这是我的完整文件

包 com.example.androidhive;

导入 java.util.ArrayList;导入 java.util.HashMap;导入 java.util.List;

导入 org.apache.http.NameValuePair;导入 org.json.JSONArray;导入 org.json.JSONException;导入 org.json.JSONObject;

导入android.app.ListActivity;导入 android.app.ProgressDialog;导入android.content.Intent;导入android.os.AsyncTask;导入android.os.Bundle;导入android.util.Log;导入android.view.View;导入 android.widget.AdapterView;导入 android.widget.AdapterView.OnItemClickListener;导入android.widget.ImageView;导入 android.widget.ListAdapter;导入 android.widget.ListView;导入 android.widget.SimpleAdapter;导入 android.widget.TextView;

公共类 quoPAPIERCORD 扩展 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_quo = >"http://192.168.1.81/php/android/get_all_quotidiens.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";
  private static final String TAG_PRICE = "price";
  private static String TAG_CU = "cu";

  // products JSONArray
  JSONArray products = null;

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

      // 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(quoPAPIERCORD.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_quo, >"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);
                      String price = c.getString(TAG_PRICE);
                      String cu = c.getString(TAG_CU);
                      /////////////
                      if (cu.equals("1")) {
                          cu = "oui";
                      } else {
                          ImageView image_A_wrong = (ImageView) >findViewById(R.id.imageView1);
                          image_A_wrong.setVisibility(View.GONE);
                      }
                      // 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);
                      map.put(TAG_PRICE, price);
                      map.put(TAG_CU, cu);

                      // 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(
                          quoPAPIERCORD.this, productsList,
                          R.layout.list_item, new String[] { >TAG_PID,
                                  TAG_NAME, >TAG_PRICE, TAG_CU},
                          new int[] { R.id.pid, R.id.name, >R.id.price, R.id.cu });
                  // updating listview
                  setListAdapter(adapter);
              }
          });

      }

  }

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:padding="5px"
    android:stretchColumns="1">

    <!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->
    <TextView
        android:id="@+id/pid"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone" />


    <!-- Name Label -->
    <TextView
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingRight="10px" 
        android:textSize="17sp"
        android:layout_marginRight="10px"
        android:layout_weight="0.2"
        android:textColor="#fff"
        android:gravity="left"  />

    <!-- price Label -->
    <TextView
        android:id="@+id/price"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingRight="5px" 
        android:textSize="17sp"
        android:layout_marginRight="5px"
        android:layout_weight="0.2"
        android:textColor="#C00000"
        android:gravity="left"
        android:textStyle="bold"  />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/quo100px"/>

     <TextView
        android:id="@+id/cu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingRight="5px" 
        android:textSize="17sp"
        android:layout_marginRight="5px"
        android:layout_weight="0.2"
        android:textColor="#C00000"
        android:gravity="left"
        android:textStyle="bold"  />


      <TextView
        android:id="@+id/mc"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingRight="5px" 
        android:textSize="17sp"
        android:layout_marginRight="5px"
        android:layout_weight="0.2"
        android:textColor="#C00000"
        android:gravity="left"
        android:textStyle="bold"  />

      <TextView
        android:id="@+id/tel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingRight="5px" 
        android:textSize="17sp"
        android:layout_marginRight="5px"
        android:layout_weight="0.2"
        android:textColor="#C00000"
        android:gravity="left"
        android:textStyle="bold"  />

</LinearLayout>
4

1 回答 1

0

在这里看到您的错误,您无法在 DoInBackgroud 中访问 UI(Textview、Edittext、ImageView 等。在OnPostExecuteOnProgressUpdate方法上执行此操作

编辑:改变这个

if (cu.equals("1"))
{
   cu = "oui";
} 
else
{
   ImageView image_A_wrong = (ImageView) findViewById(R.id.imageView1);
   image_A_wrong.setVisibility(View.GONE);
}

if (cu.equals("1"))
{
   cu = "oui";
} 
else
{
   cu = "pas";
}

然后将此添加到您的OnPostExecute()

编辑 2:看到你的代码,我有点缩小了你的错误。上面的代码必须像

全局声明字符串cu然后尝试以下操作

ImageView image_A_wrong = (ImageView) findViewById(R.id.imageView1);
if(cu.equals("pas"))
{
    image_A_wrong.setVisibility(View.GONE);
}
else
{
    image_A_wrong.setVisibility(View.GONE);
}
于 2013-04-15T06:52:13.063 回答