2011-10-20 15 views
4

グリッド項目がほとんどありません。アクティビティがロードされたときにグリッド項目を無効にする方法

  • グリッドアイテムは注文、CallLost、支払います:フラグに応じて、私はいくつかのグリッドアイテム例えば

    を無効にしたいです。 boolean status = trueの場合、CallLostを無効にします。その他は有効にする必要があります。使用

    • ブールステータスが= falseを、私は、Orderを無効にしたいPayment & CallLost

&は、私が行っている場合は、グリッドアイテム:

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

     Bundle bundle = this.getIntent().getExtras(); 
     retailerName = bundle.getString("RetailerName"); 
     relailerCode = bundle.getString("RetailerCode"); 

     isDefault = bundle.getBoolean("isDefault", false); 
     routeCode = bundle.getString("RouteCode"); 

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

     SharedPreferences myRoutes = this.getSharedPreferences("myDefalutRoute",MODE_PRIVATE); 
     defaultRoutePositions = myRoutes.getInt("defaultRoutePositions", -1); 

     retailerGrid = (GridView)findViewById(R.id.retailergridview); 
     retailerGrid.setAdapter(new RetailerImageAdapter(this)); 
     retailerGrid.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position,long id) { 
       if (position == 0) { 
        Intent i = new Intent(getBaseContext(), RetailerOrderActivity.class); 
        Bundle bundle = new Bundle(); 
        bundle.putString("Activity", "RetailerOptionActivity"); 
        bundle.putString("RetailerName", retailerName); 
        bundle.putString("RetailerCode", relailerCode); 
        i.putExtras(bundle); 
        View vi = SalesActivityGroup.group.getLocalActivityManager().startActivity("RetailerOrderActivity", i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
        SalesActivityGroup.group.replaceView(vi); 

       } 
       if (position == 2) { 
        Intent i = new Intent(getBaseContext(), CallLostActivity.class); 
        Bundle bundle = new Bundle(); 
        bundle.putString("Activity", "RetailerOptionActivity"); 
        bundle.putString("RetailerName", retailerName); 
        bundle.putString("RetailerCode", relailerCode); 
        i.putExtras(bundle); 
        View vi = SalesActivityGroup.group.getLocalActivityManager().startActivity("RetailerOrderActivity", i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
        SalesActivityGroup.group.replaceView(vi); 
       } 
      } 
     }); 

     Button reOpCancel = (Button)findViewById(R.id.reOpCancel); 
     reOpCancel.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 

        Intent i = new Intent(getBaseContext(), ListRetailerActivity.class); 
        Bundle bundle = new Bundle(); 
        bundle.putString("RetailerName", retailerName); 
        bundle.putString("RetailerCode", relailerCode); 
        bundle.putInt("positon", defaultRoutePositions); 
        bundle.putString("RouteCode", routeCode); 
        i.putExtras(bundle); 
        View vi = SalesActivityGroup.group.getLocalActivityManager().startActivity("ListRetailerActivity", i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
        SalesActivityGroup.group.replaceView(vi); 
        isDefault = false; 
        //defaultRoutePositions = -1; 
       } 
     }); 
    } 

    public void onCancelAction(View view){ 
     SalesActivityGroup.group.back(); 
     return; 
    } 

    public void onCompleteAction(View view){ 
     SalesActivityGroup.group.back(); 
     return; 
    } 

    public class RetailerImageAdapter extends BaseAdapter{ 
     Context MyContext; 

     public RetailerImageAdapter(Context _MyContext){ 
      MyContext = _MyContext; 
     } 

     public int getCount() { 
      return mThumbIds.length; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      View v; 
      if(convertView==null){ 
       LayoutInflater li = getLayoutInflater(); 
       v = li.inflate(R.layout.grid_item, null); 
       TextView tv = (TextView)v.findViewById(R.id.grid_item_text); 
       tv.setText("Profile "+position); 
       ImageView iv = (ImageView)v.findViewById(R.id.grid_item_image); 
       tv.setText(names[position]); 
       iv.setImageResource(mThumbIds[position]); 
      } 
      else 
      { 
       v = convertView; 
      } 
      return v; 
     } 

     public Object getItem(int arg0) { 
      return null; 
     } 

//  public boolean areAllItemsEnabled() { 
//   return false; 
//  } 
// 
// 
//  public boolean isEnabled(int position) { 
//   if(isDefault){ 
//    if(position == 0) return true; 
//    if(position == 1) return true; 
//    if(position == 3) return true; 
//    
//   }else{ 
//    if(position == 2) return false; 
//   } 
//   return false; 
//  } 


     public long getItemId(int arg0) { 
      return 0; 
     } 

     // references to our images 
     private Integer[] mThumbIds = { 
       R.drawable.one, R.drawable.two, 
       R.drawable.five, R.drawable.four, 
       R.drawable.eight,R.drawable.seven, 
       R.drawable.seven,R.drawable.seven, 
       R.drawable.seven 
      }; 
     private String[] names = { 
       "Order","Order Flow", 
       "Call Lost","Collection", 
       "Cancel Invoice","Survey", 
       "Complain","Customer Card", 
       "ComInv" 
     }; 
    } 
} 

してください任意のアイデアについては、この。私はthisを見ましたが、すべての項目を無効にします。

答えて

2

「無効にする」と言うと、グリッド項目をクリックできないようにしたいと思っていますが、それでも表示されるのはView.setEnabled()です。

returnの直前のRetailerImageAdapter.getView()でこれを試してください。

if (isDefault && position == 2) { 
    v.setEnabled(false); 
} else if (!default) { 
    if (position == 0 | position == 1 | position == 3) { 
     v.setEnabled(false);   
    } 
} 

私はこれが動作するポジティブないんだけど(私はそれをテストしていません)が、それは理論的にする必要があります。 RetailerImageAdapterクラス

if(isDefault){ 
v.setClickable(true); 
} else{ 
v.setClickable(false); 
} 
return v; 

ノートにgetViewメソッド()メソッドに戻りビューの前にコードの下に置く

0

:チェックし、その逆も同様あなたの条件に応じて、

関連する問題