2013-02-25 47 views
3


我有問題就到ListView和CheckBox
餘米創建使用自定義ListView以下JSON數據
顯示下一行,當先前行的複選框被選中

{ 
      "title": "Amount Field", 
      "settingItems": [ 
       { 
       "title": "Manual Entry", 
       "type": "boolean", 
       "value": true 
       }, 
       { 
       "title": "Predefined Amount", 
       "type": "Amount", 
       "value": 0.00 
       }, 
       { 
       "title": "Drop Down Amount Menu", 
       "type": "boolean", 
       "value": false 
       }, 
       { 
       "title": "", 
       "type": "Amount", 
       "value": 0.00 
       } 
      ] 
      } 

利用上述數據我成功我Listview也在列表的末尾,即在listview im的最後一項顯示dropDown按鈕添加金額。現在我應該怎麼想
當我檢查的ListView下拉金額菜單的listItem然後最後一行必須是可見的還反之亦然
又該代碼必須寫入getView方法

回答

0

您可以設置佈局可見和Invisibile使用view.setVisibility(View.VISIBLE)或view.setVisibility(View.INVISIBLE)

+0

但我怎麼知道該下拉amountMenu列表項檢查。您的寶貴意見會後工作。 – Pravin 2013-02-25 11:17:42

+1

爲您可以使用標誌或arraylist存儲選定的下拉ID和該ID是在getView方法比較 – 2013-02-25 11:19:40

+0

使用該標誌爲該位置,它的工作太..但不驗證ListView ....我在裏面getDataViewChanged()getView ()...所以現在如何刷新listview .. – Pravin 2013-03-04 06:05:32

0

在這個例子中具有使用存儲選擇的行的ID字符串變量

MainActivity

public class MainActivity extends Activity { 

static final String TAG_NAME = "name"; 
static final String TAG_ID = "id"; 
static String selected = ""; 

ListView listView; 


HashMap<String, String> map; 
ArrayList<HashMap<String,String>> myList; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myList = new ArrayList<HashMap<String,String>>();  
    listView = (ListView) findViewById(R.id.listView1); 
    fillListView(); 
} 

private void fillListView() { 

    myList.clear(); 

    map = new HashMap<String, String>(); 
    map.put(TAG_ID,"1"); 
    map.put(TAG_NAME, "Name1"); 
    myList.add(map); 

    map = new HashMap<String, String>(); 
    map.put(TAG_ID,"2"); 
    map.put(TAG_NAME, "Name2"); 
    myList.add(map); 

    map = new HashMap<String, String>(); 
    map.put(TAG_ID,"3"); 
    map.put(TAG_NAME, "Name3"); 
    myList.add(map); 

    map = new HashMap<String, String>(); 
    map.put(TAG_ID,"4"); 
    map.put(TAG_NAME, "Name4"); 
    myList.add(map); 

    listView.setAdapter(new MyListAdapter(this, R.layout.row, myList)); 

} 
private class MyListAdapter extends BaseAdapter 
{ 

    private List<HashMap<String,String>> List; 
    private LayoutInflater mInflater; 
    private int layoutresource; 

    public MyListAdapter(Context context,int resource,List<HashMap<String, String>> myList) { 
     List = myList; 
     mInflater = LayoutInflater.from(context); 
     layoutresource = resource; 
    } 

    @Override 
    public int getCount() { 
     return List.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return List.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     if (convertView == null) { 
      convertView = mInflater.inflate(layoutresource,null); 
     }  

     final View rootView = convertView.findViewById(R.id.root); 

     ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView1); 
     final TextView name = (TextView) convertView.findViewById(R.id.textView1); 

     imageView.setImageDrawable(getResources().getDrawable(R.drawable.profile)); 
     name.setTextColor(Color.parseColor("#ffffff")); 
     name.setText(List.get(position).get(TAG_NAME)); 

     if (List.get(position).get(TAG_ID).equals(selected)) 
      name.setTextColor(Color.parseColor("#ff0000")); 
     else 
      name.setTextColor(Color.parseColor("#ffffff")); 


     rootView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       selected = List.get(position).get(TAG_ID); 
       fillListView(); 
      } 
     }); 

     name.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       rootView.performClick(); 
      } 
     }); 

     imageView.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       rootView.performClick(); 
      } 
     }); 

     return convertView; 
    } 
} 

}

+0

OK感謝您的快速回復..讓我試試這個.. – Pravin 2013-02-25 11:28:48

相關問題