2011-10-20 3 views
4

그리드 항목이 거의 없습니다.활동이로드 될 때 그리드 항목을 비활성화하는 방법

  • 그리드 항목은 주문, CallLost, 지불은 다음과 같습니다 플래그에 따라, 좀 그리드 항목 예를 들어

    을 해제 할 수 있습니다. 부울 상태 = true이면 CallLost을 비활성화하고 싶습니다. 기타는 활성화되어야합니다. 사용

    • 부울 상태 = 거짓, 그때 나는, 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

: 확인은 그 반대의 경우도 마찬가지 조건에 따라

관련 문제