Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.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中的edittext获取值_Android_Gridview_Android Edittext - Fatal编程技术网

Android 如何从gridview中的edittext获取值

Android 如何从gridview中的edittext获取值,android,gridview,android-edittext,Android,Gridview,Android Edittext,我在我的项目中使用了网格视图 我的活动布局文件 <GridView android:id="@+id/gridView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="start" android:numColumns="1" android:stretchMode="spacingWidth" and

我在我的项目中使用了网格视图

我的活动布局文件

<GridView
    android:id="@+id/gridView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="start"
    android:numColumns="1"
    android:stretchMode="spacingWidth"
    android:layout_below="@+id/spinner1"
    android:layout_marginLeft="20dip"
    android:layout_marginRight="10dip"
    android:layout_marginTop="20dip"
    android:visibility="visible"    >
    </GridView>
现在我的问题是 单击“修改”按钮时,我想用新值更新数据库 我尝试使用.gettext()从编辑文本中获取值。 但它只从first edittext返回值

我是如何从其他EditText获得值的,以及行id
所以我用相同设计的新价格更新数据库。

为什么要使用GridView来完成如此简单的工作? 如果使用ListView,则效果更好,而且填充列表和从其他EditText获取值会更容易

我可以给你一个想法。。。请看下面的代码我在这里做什么:

public class RecordExpenseAdapter extends ArrayAdapter<HashMap<String, String>>
    {

        Intent intent;
        Context context;
        int layoutResourceId;
        ArrayList<HashMap<String, String>> RecordList = new ArrayList<HashMap<String, String>>();           
        public RecordExpenseAdapter(Context context, int layoutResourceId,ArrayList<HashMap<String, String>> RecordList) 
        {
            super(context, layoutResourceId, RecordList);
            this.layoutResourceId = layoutResourceId;
            this.context = context;
            this.RecordList = RecordList;
            this.intent = new Intent(context, ScanReceipt.class);
            //Log.d("ASD:","comp intialize");
       }    

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            ImageHolder holder = null;

            try{


        if(row == null)
        {
        Log.d("ASD:","insdie getview");
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        holder = new ImageHolder();
        holder.categoryName = (TextView)row.findViewById(R.id.textView1);
        holder.date = (TextView)row.findViewById(R.id.textView2);
        holder.amount = (TextView)row.findViewById(R.id.textView3);
        holder.record_rid = (TextView)row.findViewById(R.id.ridRecord);     
        holder.cid=(TextView)row.findViewById(R.id.cid);
        holder.vendor=(TextView)row.findViewById(R.id.vendor);
        holder.description=(TextView)row.findViewById(R.id.desc);
        holder.attachURL=(TextView)row.findViewById(R.id.userFile);
        holder.attachImage=(ImageView)row.findViewById(R.id.attachment);
        holder.scanReceipt = (ImageView)row.findViewById(R.id.imageView2);

        row.setTag(holder);
        holder.scanReceipt.setTag(position);

        holder.scanReceipt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                try{
                    Log.e("Scan Receipt Button List", "1");
                    ImageView iv = (ImageView) v;
                    Log.e("Scan Receipt Button List", "2");
                    int pos = (Integer) iv.getTag();
                    Log.e("Scan Receipt Button List", "3");
                    ScanReceipt.rid = RecordList.get(pos).get("rid").toString();
                    Log.e("Scan Receipt Button List", "4");
                    //Toast.makeText(context, "Button Clicked", Toast.LENGTH_LONG).show();
                    RecordExpenseAdapter.this.doIt();
                }catch(Exception e){
                    Log.e("Error on click on Scan Receipt Button List", e.getMessage().toString());
                }
            }
        });

//      if(picture.get("userfile")=="no")
//      {
//          holder.attachImage.setVisibility(View.INVISIBLE);
//      }
//      else
//      {
//          holder.attachImage.setVisibility(View.VISIBLE);
//      }
        row.setTag(holder);

        }
        else
        {
        holder = (ImageHolder)row.getTag();
        }

        HashMap<String, String> picture = RecordList.get(position);

        holder.categoryName.setText(picture.get("category_name"));
        holder.date.setText(picture.get("date"));
        holder.amount.setText(picture.get("amount"));
        holder.record_rid.setText(picture.get("rid"));
        holder.cid.setText(picture.get("cid"));
        holder.vendor.setText(picture.get("vendor"));
        holder.description.setText(picture.get("description"));
        holder.attachURL.setText(picture.get("image"));

        Log.e("Record Expense Adapter 0 : IMAGE", picture.get("image").toString());
        Log.e("RID : " + position, picture.get("rid").toString());

    //  Log.e("error value", picture.get("userfile"));

        //Log.e("error value", "value is error");

//      if(picture.get("userfile")=="no")
//      {
//          holder.attachImage.setVisibility(View.INVISIBLE);   
//      }
//          
//      else
//      {
//          holder.attachImage.setVisibility(View.VISIBLE); 
//      }
        if(picture.get("image").toString().trim().equalsIgnoreCase("no")){
            holder.scanReceipt.setVisibility(View.VISIBLE);
            holder.attachImage.setVisibility(View.INVISIBLE);
        }else{
            holder.scanReceipt.setVisibility(View.GONE);
            holder.attachImage.setVisibility(View.VISIBLE);
        }
            }
            catch(Exception e){

            }
        return row; 
        }

public void doIt(){
    Log.e("Adapter 0", "In do It");

    context.startActivity(intent);
}

        static class ImageHolder
        {
                TextView categoryName;
                TextView date;
                TextView amount;
                TextView record_rid;
                TextView vendor;
                TextView cid;
                TextView description;
                TextView attachURL;             
                ImageView attachImage,scanReceipt;
        }

}
公共类RecordExpenseAdapter扩展了ArrayAdapter
{
意图;
语境;
国际布局资源;
ArrayList RecordList=新建ArrayList();
public RecordExpenseAdapter(上下文上下文、int-layoutResourceId、ArrayList记录列表)
{
超级(上下文、布局资源ID、记录列表);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
this.RecordList=记录列表;
this.intent=新的intent(上下文,scanReceive.class);
//日志d(“ASD:,“公司初始化”);
}    
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
ImageHolder=null;
试一试{
if(行==null)
{
Log.d(“ASD:,“insdie getview”);
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
行=充气机。充气(layoutResourceId,父级,false);
支架=新的图像支架();
holder.categoryName=(TextView)row.findViewById(R.id.textView1);
holder.date=(TextView)row.findViewById(R.id.textView2);
holder.amount=(TextView)row.findViewById(R.id.textView3);
holder.record_rid=(TextView)row.findViewById(R.id.ridRecord);
holder.cid=(TextView)row.findViewById(R.id.cid);
holder.vendor=(TextView)row.findViewById(R.id.vendor);
holder.description=(TextView)row.findViewById(R.id.desc);
holder.attachURL=(TextView)row.findviewbyd(R.id.userFile);
holder.attachImage=(ImageView)row.findViewById(R.id.attachment);
holder.scanReceive=(ImageView)row.findViewById(R.id.imageView2);
row.setTag(支架);
支架.扫描收据.设置标签(位置);
holder.ScanReceivement.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
试一试{
Log.e(“扫描接收按钮列表”、“1”);
ImageView iv=(ImageView)v;
Log.e(“扫描接收按钮列表”、“2”);
int pos=(整数)iv.getTag();
Log.e(“扫描接收按钮列表”、“3”);
scanReceivement.rid=RecordList.get(pos.get(“rid”).toString();
Log.e(“扫描接收按钮列表”、“4”);
//Toast.makeText(上下文,“单击按钮”,Toast.LENGTH_LONG.show();
RecordExpenseAdapter.this.doIt();
}捕获(例外e){
Log.e(“单击扫描接收按钮列表时出错”,e.getMessage().toString());
}
}
});
//if(picture.get(“userfile”)=“否”)
//      {
//holder.attachImage.setVisibility(视图不可见);
//      }
//否则
//      {
//支架.附件.设置可见性(视图.可见);
//      }
row.setTag(支架);
}
其他的
{
holder=(ImageHolder)行。getTag();
}
HashMap picture=RecordList.get(位置);
holder.categoryName.setText(picture.get(“category_name”);
holder.date.setText(picture.get(“日期”));
holder.amount.setText(picture.get(“amount”));
holder.record_-rid.setText(picture.get(“rid”));
holder.cid.setText(picture.get(“cid”));
holder.vendor.setText(picture.get(“vendor”);
holder.description.setText(picture.get(“description”);
holder.attachURL.setText(picture.get(“image”));
Log.e(“记录费用适配器0:IMAGE”,picture.get(“IMAGE”).toString());
Log.e(“RID:+位置,picture.get(“RID”).toString());
//Log.e(“错误值”,picture.get(“用户文件”);
//Log.e(“错误值”,“值为错误”);
//if(picture.get(“userfile”)=“否”)
//      {
//holder.attachImage.setVisibility(视图不可见);
//      }
//          
//否则
//      {
//支架.附件.设置可见性(视图.可见);
//      }
if(picture.get(“image”).toString().trim().equalsIgnoreCase(“no”)){
holder.scanReceivement.setVisibility(View.VISIBLE);
holder.attachImage.setVisibility(视图不可见);
}否则{
holder.scanReceive.setVisibility(View.GONE);
支架.附件.设置可见性(视图.可见);
}
}
捕获(例外e){
}
返回行;
}
公共无效doIt(){
Log.e(“适配器0”,“在DoIt中”);
背景。开始触觉(意图);
}
静态类图像保持器
{
TextView类别名称;
文本查看日期;
文本浏览量;
文本视图记录;
文本视图供应商;
文本视图cid;
文本视图描述;
文本视图附件;
ImageView附件图像,扫描收据;
}
}
在上面的代码中,我实现了ImageView扫描收据上的单击侦听器。每次都是相同的imageview,即每一行都有相同的布局,这意味着所有行都有相同的id,但仍然有
public void fillgrid(int categoryid,String car){
gridView = (GridView) findViewById(R.id.gridView);
final DatabaseClass2 db = new DatabaseClass2(this);
    db.openDataBase();
Cursor c = db.getprice(categoryid); 
startManagingCursor(c);
String[] fromColumns = {"_id",DatabaseClass2.colPrice};
int[] toViews = {R.id.cplabel, R.id.cpprice};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        R.layout.grid_change_prices, c, fromColumns, toViews);
        //c.moveToNext();
gridView.setAdapter(adapter); }
public class RecordExpenseAdapter extends ArrayAdapter<HashMap<String, String>>
    {

        Intent intent;
        Context context;
        int layoutResourceId;
        ArrayList<HashMap<String, String>> RecordList = new ArrayList<HashMap<String, String>>();           
        public RecordExpenseAdapter(Context context, int layoutResourceId,ArrayList<HashMap<String, String>> RecordList) 
        {
            super(context, layoutResourceId, RecordList);
            this.layoutResourceId = layoutResourceId;
            this.context = context;
            this.RecordList = RecordList;
            this.intent = new Intent(context, ScanReceipt.class);
            //Log.d("ASD:","comp intialize");
       }    

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            ImageHolder holder = null;

            try{


        if(row == null)
        {
        Log.d("ASD:","insdie getview");
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        holder = new ImageHolder();
        holder.categoryName = (TextView)row.findViewById(R.id.textView1);
        holder.date = (TextView)row.findViewById(R.id.textView2);
        holder.amount = (TextView)row.findViewById(R.id.textView3);
        holder.record_rid = (TextView)row.findViewById(R.id.ridRecord);     
        holder.cid=(TextView)row.findViewById(R.id.cid);
        holder.vendor=(TextView)row.findViewById(R.id.vendor);
        holder.description=(TextView)row.findViewById(R.id.desc);
        holder.attachURL=(TextView)row.findViewById(R.id.userFile);
        holder.attachImage=(ImageView)row.findViewById(R.id.attachment);
        holder.scanReceipt = (ImageView)row.findViewById(R.id.imageView2);

        row.setTag(holder);
        holder.scanReceipt.setTag(position);

        holder.scanReceipt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                try{
                    Log.e("Scan Receipt Button List", "1");
                    ImageView iv = (ImageView) v;
                    Log.e("Scan Receipt Button List", "2");
                    int pos = (Integer) iv.getTag();
                    Log.e("Scan Receipt Button List", "3");
                    ScanReceipt.rid = RecordList.get(pos).get("rid").toString();
                    Log.e("Scan Receipt Button List", "4");
                    //Toast.makeText(context, "Button Clicked", Toast.LENGTH_LONG).show();
                    RecordExpenseAdapter.this.doIt();
                }catch(Exception e){
                    Log.e("Error on click on Scan Receipt Button List", e.getMessage().toString());
                }
            }
        });

//      if(picture.get("userfile")=="no")
//      {
//          holder.attachImage.setVisibility(View.INVISIBLE);
//      }
//      else
//      {
//          holder.attachImage.setVisibility(View.VISIBLE);
//      }
        row.setTag(holder);

        }
        else
        {
        holder = (ImageHolder)row.getTag();
        }

        HashMap<String, String> picture = RecordList.get(position);

        holder.categoryName.setText(picture.get("category_name"));
        holder.date.setText(picture.get("date"));
        holder.amount.setText(picture.get("amount"));
        holder.record_rid.setText(picture.get("rid"));
        holder.cid.setText(picture.get("cid"));
        holder.vendor.setText(picture.get("vendor"));
        holder.description.setText(picture.get("description"));
        holder.attachURL.setText(picture.get("image"));

        Log.e("Record Expense Adapter 0 : IMAGE", picture.get("image").toString());
        Log.e("RID : " + position, picture.get("rid").toString());

    //  Log.e("error value", picture.get("userfile"));

        //Log.e("error value", "value is error");

//      if(picture.get("userfile")=="no")
//      {
//          holder.attachImage.setVisibility(View.INVISIBLE);   
//      }
//          
//      else
//      {
//          holder.attachImage.setVisibility(View.VISIBLE); 
//      }
        if(picture.get("image").toString().trim().equalsIgnoreCase("no")){
            holder.scanReceipt.setVisibility(View.VISIBLE);
            holder.attachImage.setVisibility(View.INVISIBLE);
        }else{
            holder.scanReceipt.setVisibility(View.GONE);
            holder.attachImage.setVisibility(View.VISIBLE);
        }
            }
            catch(Exception e){

            }
        return row; 
        }

public void doIt(){
    Log.e("Adapter 0", "In do It");

    context.startActivity(intent);
}

        static class ImageHolder
        {
                TextView categoryName;
                TextView date;
                TextView amount;
                TextView record_rid;
                TextView vendor;
                TextView cid;
                TextView description;
                TextView attachURL;             
                ImageView attachImage,scanReceipt;
        }

}
List<CustomClass> list = new ArrayList<CustomClass>();
price_text.setTag(c.getPosition());
price_text.getTag()