Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何动态控制gridview特殊项的视图_Android_Gridview_Customization - Fatal编程技术网

Android 如何动态控制gridview特殊项的视图

Android 如何动态控制gridview特殊项的视图,android,gridview,customization,Android,Gridview,Customization,我想在gridview项目中控制(删除(使其消失)、添加(使其可见)、设置数据)视图,例如,当用户点击gridview项目中的下载按钮时,网格项目的progressBar在完成下载后运行其进度;dowload按钮消失,open按钮变为可见,可能还有更多操作,如更改delete按钮的背景,在点击下载按钮后匹配我的代码,我的订单正常运行,但当用户浏览gridview时,一些项目会得到与我订购的最后一个网格项目类似的效果[Visibling open button等]我在网格中看到了一些相同的项目,有

我想在gridview项目中控制(删除(使其消失)、添加(使其可见)、设置数据)视图,例如,当用户点击gridview项目中的下载按钮时,网格项目的progressBar在完成下载后运行其进度;dowload按钮消失,open按钮变为可见,可能还有更多操作,如更改delete按钮的背景,在点击下载按钮后匹配我的代码,我的订单正常运行,但当用户浏览gridview时,一些项目会得到与我订购的最后一个网格项目类似的效果[Visibling open button等]我在网格中看到了一些相同的项目,有人能帮我解决这个问题吗?或者提供使用recyclerview替代

这是我的适配器类

public class CustomGrid extends BaseAdapter{
private Context mContext;
private final String[] web;
private final int[] Imageid;

public CustomGrid(Context c,String[] web,int[] Imageid ) {
        mContext = c;
        this.Imageid = Imageid;
        this.web = web;
}

@Override
public int getCount() {
        return web.length;
}

@Override
public Object getItem(int position) {
        return null;
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
        View grid;
        if (convertView == null) {
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                grid = inflater.inflate(R.layout.grid_single,parent,false);
        } else {
                grid = convertView;
        }
        final ProgressBar downloadPb =(ProgressBar)grid.findViewById(R.id.single_gride_progressBar);
        final Button downloadBtn = (Button) grid.findViewById(R.id.grid_single_download_btn);
        final Button openBtn = (Button) grid.findViewById(R.id.grid_single_open_btn);
        final Button deleteBtn = (Button) grid.findViewById(R.id.grid_single_delete_btn);

        downloadBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                        new CountDownTimer(5000,1){ //simulating download progress
                                @Override
                                public void onTick(long millisUntilFinished) {
                                        if(millisUntilFinished<=500){
                                                downloadPb.setProgress(100);
                                        }else if(millisUntilFinished<=1000){
                                                downloadPb.setProgress(80);
                                        }else if(millisUntilFinished<=2000){
                                                downloadPb.setProgress(60);
                                        }else if(millisUntilFinished<=3000){
                                                downloadPb.setProgress(40);
                                        }else if(millisUntilFinished<=4000){
                                                downloadPb.setProgress(20);
                                        }
                                }

                                @Override
                                public void onFinish(){
                                        downloadBtn.setVisibility(View.GONE);
                                        openBtn.setVisibility(View.VISIBLE);
                                        deleteBtn.setBackgroundResource(R.drawable.delete_selector);
                                }
                        }.start();
                }
        });
        TextView textView = (TextView) grid.findViewById(R.id.grid_text);
        ImageView imageView = (ImageView)grid.findViewById(R.id.grid_image);
        textView.setText(web[position]);
        imageView.setImageResource(Imageid[position]);

        return grid;
}
}
公共类CustomGrid扩展BaseAdapter{
私有上下文;
私有最终字符串[]web;
私有最终int[]Imageid;
公共CustomGrid(上下文c,字符串[]web,int[]图像ID){
mContext=c;
this.Imageid=Imageid;
this.web=web;
}
@凌驾
public int getCount(){
返回web.length;
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图网格;
if(convertView==null){
LayoutInflater充气器=(LayoutInflater)mContext.getSystemService(Context.LAYOUT\u充气器\u服务);
网格=充气机。充气(R.布局。网格\u单个,父,假);
}否则{
网格=转换视图;
}
最终ProgressBar下载PB=(ProgressBar)grid.findViewById(R.id.single\u grid\u ProgressBar);
final Button downloadBtn=(Button)grid.findviewbyd(R.id.grid\u single\u download\u btn);
final Button openBtn=(Button)grid.findviewbyd(R.id.grid\u single\u open\u btn);
final Button deleteBtn=(Button)grid.findviewbyd(R.id.grid\u single\u delete\u btn);
downloadBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
新的倒计时(5000,1){//模拟下载进度
@凌驾
公共void onTick(长毫秒未完成){

如果你对编程语言中的语法有一定的了解,为什么不懂英语呢?我只想为我糟糕的英语说声抱歉
public class Main2Activity extends Activity {

String[] mArrayNames =     {"english","italic","germany","french","russina","persian","indian","arabic","spanish","latin",};
int[] mArrayPics = { R.drawable.c118_1 , R.drawable.c104 , R.drawable.c115_2 , R.drawable.c117 , R.drawable.c613_8 , R.drawable.c103 , R.drawable.c103_1 , R.drawable.c114_1 , R.drawable.c613_7 , R.drawable.r155};
GridView grid ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);

CustomGrid adapter = new CustomGrid(Main2Activity.this, mArrayNames, mArrayPics);
grid = (GridView)findViewById(R.id.gridView45);
grid.setAdapter(adapter);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent,View view,int position, long id) {
    }
});
}
}