解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值
大概算法:重写BaseAdaptergetView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数据那么在生成EditText的时候要监控其值的变化存储下来
首先
EditText editText = (EditText) findViewById(Ridxx);
然后
String text = editTextgetText()toString();
final EditText et = new EditText(this);
new AlertDialog
Builder(this)
setTitle("请输入")
setIcon(androidRdrawableic_dialog_info)
setView(et)
setPositiveButton("确定",new DialogInterfaceOnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
String str = etgetText()toString();
}
})
setNegativeButton("取消", null)
show();
android读取数据库可以使用sqlite一些api进行读取,实例如下:
/查找一条数据
@param uid
/
public User find(Integer uid){
SQLiteDatabase db=dbOpenHelpergetReadableDatabase(); //创建数据库辅助类
Cursor cursor =dbrawQuery("select from user where uid=", new String[]{uidtoString()}); //创建一个游标
if(cursormoveToFirst()){ //循环遍历查找数组
int uid2=cursorgetInt(cursorgetColumnIndex("uid"));
String uname=cursorgetString(cursorgetColumnIndex("uname"));
String uaddress=cursorgetString(cursorgetColumnIndex("uaddress"));
User user=new User();
usersetUid(uid2);
usersetUname(uname);
usersetUaddress(uaddress);
return user;
}
cursorclose();
return null;
}
方法:
final TextView ledShow = (TextView)findViewById(RidLed_Show);
final EditText ledEdit = (EditText)findViewById(RidLed_Edit);
Button ledButton = (Button)findViewById(RidEdit_Button);
ledEditsetInputType(InputTypeTYPE_CLASS_TEXT);
ledButtonsetOnClickListener(new ViewOnClickListener() {
public void onClick(View v) {
//获取EditText控件ledShow的输入内容,并用ledShow显示
ledShowsetText(ledEditgetText()toString());
}
});
知识点延伸:
EditText是接受用户输入信息的最重要控件。EditText的属性有:
android:layout_gravity="center_vertical"//设置控件显示的位置:默认top,这里居中显示, 还有bottom
android:hint="请输入数字!"//设置显示在空间上的提示信息
android:numeric="integer"//设置只能输入整数,如果是小数则是:decimal
android:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行。 < !--
android:gray="top" //多行中指针在第一行第一位置
etsetSelection(etlength());//调整光标到最后一行
Android:autoText//自动拼写帮助
Android:capitalize//首字母大写
Android:digits//设置只接受某些数字
Android:singleLine //是否单行或者多行,回车是离开文本框还是文本框增加新行
Android:numeric //只接受数字
Android:password //密码
Android:phoneNumber // 输入电话号码
Android:editable //是否可编辑
Android:autoLink=”all” //设置文本超链接样式当点击网址时,跳向该网址
android:password="true"//设置只能输入密码
android:textColor= "#ff8c00"//字体颜色
android:textStyle="bold"//字体,bold, italic,bolditalic
android:textSize="20dip"//大小
对于如图所示的单选按钮 xml文件表示为
<RadioGroupandroid:id="@+id/sex"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/male"
android:text="男"/>
<RadioButton
android:id="@+id/female"
android:text="女"/>
</RadioGroup>
获取数据内容示例:
thissex=(RadioGroup) superfindViewById(Ridsex);thismale=(RadioButton) superfindViewById(Ridmale);
thisfemale=(RadioButton) superfindViewById(Ridfemale);
thissexsetOnCheckedChangeListener(new OnCheckedChangeListenerImp());
private class OnCheckedChangeListenerImp implements OnCheckedChangeListener{
public void onCheckedChanged(RadioGroup group, int checkedId) {
String temp=null;
if(MainActivitythismalegetId()==checkedId){
temp="男";
}
else if(MainActivitythisfemalegetId()==checkedId){
temp="女";
}
RadioButton是android开发中常见的一种控件,而使用简单,通常与RadioGroup一起使用。RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器。
你把这句EditText t1=(EditText)findViewById(RideditText1);,也放到
public void onClick(View v) {
}});里面
你可以通过getSelectedItem()获取这个Item绑定的数据,这个数据应该包括(和文字),这样就可以获取到点击的Item里面的文字。也可以调用getSelectedView()通过findViewById()找到这个TextView,调用getText()获取到文字
以上就是关于android 中listview怎么获得item中EditText的值全部的内容,包括:android 中listview怎么获得item中EditText的值、java安卓开发怎么获得button和EditText的text字符串值、安卓如何获取输入框的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)