2013-04-21 4 views
0

그리드보기에 확인란을 어떻게 추가합니까? 간단한 어댑터를 사용하고 있는데 어떻게해야합니까? 내 눈금에 확인란을 추가하는 방법 누군가 내 도움을 줄 수있는 코드에 확인란을 추가하는 방법을 알려주십시오. 사용자가 여러 사진내 gridview에 확인란을 추가하는 방법은 무엇입니까?

SimpleAdapter simpleAdapter; 
    GridView gridView; 

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

    File photos = new File(getFilesDir(),"photos"); 
    photos.mkdirs(); 

    File root1 = new File("/data/data/com.newsoftwares.folderlock/files/"); 

    currentParent = root1; 
    currentFiles = root1.listFiles(); 

    currentFilePath = new String[currentFiles.length]; 
    int count = 0; 

    for(File f:currentFiles) 
    { 
     currentFilePath[count] = f.getAbsolutePath(); 
     count++; 
    } 


    gridView =(GridView)findViewById(R.id.grid); 
    gridView.setOnItemClickListener(new OnItemClickListener(){ 
     public void onItemClick(AdapterView<?> parent, View view, int 
     position,long id) { 


     if(currentFiles[position].isDirectory()) 
     { 
      root = new File("/data/data/com.myexample.folderlock 
     /files/"+FileName(currentFilePath[position])+"/"); 

      Log.e("Root first",root+ " "); 

      currentFiles = root.listFiles(); 

      inflateListView(currentFiles); 
     } 
     else if(currentFiles[position].isFile()) 
     { 
       inflateListView(currentFiles);  
        } 

     private void inflateListView(File[] files){ 

List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>(); 

for(int i=0;i<files.length;i++) 
{  
     Map<String, Object> listItem = new HashMap<String, Object>(); 

     if(files[i].isDirectory()) 
     { 
      listItem.put("icon", R.drawable.folder); 
     } 
     else 
     { 
      listItem.put("icon", R.drawable.file); 
     } 

     listItem.put("fileName", files[i].getName()); 
     listItems.add(listItem); 
    } 

    simpleAdapter=new SimpleAdapter(this,listItems,R.layout.line,new String[] 
    {"icon","fileName"},new int[]{R.id.icon,R.id.file_name}); 
    gridView.setAdapter(simpleAdapter); 
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" 
     + Environment.getExternalStorageDirectory()))); 

    } 

답변

1

당신이있는 gridview에서 그것을 할 수 있지만, u는 여기

목록보기

에 그것을 할 수 있습니다를 선택, 그래서있는 gridview에서 체크 박스를 추가하는 방법 는 주요 활동

package com.example.checkboxingridview; 


import android.os.Bundle; 
import android.app.Activity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.CheckBox; 
import android.widget.ImageButton; 
import android.widget.ListView; 

public class MainActivity extends Activity { 

    ListView checkboxList; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     checkboxList = (ListView) findViewById(R.id.listView1); 
     checkboxList.setAdapter(new CustomAdapter(context, resource, textViewResourceId, objects)); 

    } 

    // do what you want if this item checked 
    void checkBoxChecked(View v) { 
     CheckBox checkbox= (CheckBox)v; 
     Object rowObject =checkbox.getTag(); 
     // here we can do what we want in this checkbox 
    } 


} 

에게 있습니다 및 맞춤형 어댑터

package com.example.checkboxingridview; 

import java.util.List; 

import com.example.pos.R; 
import com.util.TransactionCustomAdapter.ViewHolder; 

import android.annotation.SuppressLint; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.CheckBox; 
import android.widget.ImageButton; 
import android.widget.TextView; 

public class CustomAdapter extends ArrayAdapter { 

    Context context; 
    int layoutResourceId; 
public CustomAdapter(Context context, int resource, int textViewResourceId, 
     List objects) { 
    super(context, resource, textViewResourceId, objects); 
    // TODO Auto-generated constructor stub 
} 

@SuppressLint("NewApi") 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    ViewHolder holder; 

    if (row == null) { 
     LayoutInflater inflater = (LayoutInflater) parent.getContext() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = inflater.inflate(R.layout.list_row_item, null); 

     holder = new ViewHolder(); 



     holder.setCheckBox((CheckBox) row.findViewById(R.id.checkBox1)); 


     row.setTag(holder); 
    } else { 
     holder = (ViewHolder) row.getTag(); 
    } 

    // set tag by the object of this list item 
    holder.voidBtn.setTag(itemListObject); 

    // StrictMode.ThreadPolicy policy = new 
    // StrictMode.ThreadPolicy.Builder() 
    // .permitAll().build(); 
    // StrictMode.setThreadPolicy(policy); 

    return row; 
} 

static class ViewHolder { 

    CheckBox checkBox; 

    public CheckBox getCheckBox() { 
     return checkBox; 
    } 

    public void setCheckBox(CheckBox checkBox) { 
     this.checkBox = checkBox; 
    } 

} 

}

main_activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" > 
</ListView> 

+0

PLZ 도움말 meeeeeeeee –

+0

체크 편집 대답 –

관련 문제