android listview获取控件的值,android中关于使用ListView中如何获得其中EditText中从手机输入的值...

最近在做数据库的课程设计,使用了Android的SQLite来做,然后遇到了一些困难,其中一个就是焦点问题。

当我们为一系列的数据绑定到一个ListView上进行显示的时候,会发生焦点碰撞的问题,比如能为每一个item添加点击事件并且有反应,但是当点击item里面的edittext的时候确实没有反应,这时候的editext的焦点应该是android:focusable="false",但是,当我们把它以及listview中其某一个设置为true或者不设置这个属性的时候,item就对点击事件有反应但是对edittext有反应了,所以我们应该如何来获得这个可以更改的值呢,我使用的是如下这个方法:

首先,吧edittext的android:focusable属性设置为true或者省略不设置,使得item不能发生点击或者其他事件,在底部增加一个button,是在main布局中的,当在edittext中输入完数据之后,点击按钮,从而实现数据获取。

在按钮事件当中需要实现如下方法如下:

for (int i = 0; i < teachet_listview.getChildCount(); i++)

{ //遍历ListView,获取每一个item

LinearLayout layout = (LinearLayout) teachet_listview.getChildAt(i);// 获得子item的layout

// 从layout中获得控件,根据其id

TextView textView01 = (TextView) layout.getChildAt(0);//按照他们在item的排列顺序,从0开始

TextView textView02 = (TextView) layout.getChildAt(1);

EditText et = (EditText) layout.getChildAt(2);

// String name = textView01.getText().toString();

String S_no = textView02.getText().toString();

String score = et.getText().toString();

Log.i("TeacherMainFrame", S_no + score);

db.execSQL("UPDATE dbS_C SET score=? WHERE s_name=? AND c_name=?",

new Object[]

{ score, S_no, class_name });

Toast.makeText(getApplicationContext(), "录入成功", 0).show();

// 或者根据位置,在这我假设TextView在前,EditText在后

//System.out.println("the text of " + i + "'s EditText:----------->"

//+ et.getText());

}

这样就不用说需要Item和Edittext同时都获得焦点才可以录入成绩了

其中listview的模版

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值