知识的领域是无限的,我们的学习也是无限期的。这篇文章主要讲述在Android中的edittext中从textview获取价值相关的知识,希望能为你提供帮助。
我只是android开发的初学者。我正在开发一个应用程序,我必须检索由字符和整数组成的textview。我想从该textview中仅检索Edittext中的Integers。
我想要为Edittext检索的文本
<
TextView
android:id="@+id/txt"
android:layout_width="118dp"
android:layout_height="38dp"
android:layout_marginLeft="38dp"
android:text="Sun Glasses
Rs.729"
android:textColor="@color/colorAccent"
android:textSize="15sp" />
Edittext在这里:
<
EditText
android:id="@+id/editTextAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center" />
我试图实现这一点:
private EditText editTextAmount;
private String paymentAmount;
private String paymentAmount;
editTextAmount = (EditText) findViewById(R.id.editTextAmount);
amount=(TextView)findViewById(R.id.txt);
editTextAmount.setText(amount.getText().toString());
paymentAmount = editTextAmount.getText().toString();
我尝试了一切,也遵循了许多教程,但没有得到我想要的结果。希望我能得到你们的帮助,我将非常感谢你的帮助。
答案
试试这个方式
String amount = amount.getText().toString();
String getNum = ExtractNumberFromString(amount);
paymentAmount.setText(getNum);
public static String ExtractNumberFromString(String cnvrtdDate){
String [] dateArray = cnvrtdDate.split("|");
StringBuilder sb = new StringBuilder();
StringBuilder sb1 = new StringBuilder();
for(int i=0;
i<
dateArray.length;
i++)
{
boolean ItIs = isNumeric(dateArray[i]);
if(ItIs)
{sb.append(dateArray[i]);
}
else
{
sb1.append(dateArray[i]);
}
}System.out.println("Numbers="+sb);
System.out.println("Characters="+sb1);
returnsb.toString();
}public static boolean isNumeric(String str)
{
try
{
int d = Integer.parseInt(str);
}
catch(Exception nfe)
{
return false;
}
return true;
}
另一答案试试这段代码:
String regex = "[0-9]+";
String data = https://www.songbingjia.com/android/amount.getText().toString();
Pattern pattern = Pattern.compile(regex);
List<
String>
list = new ArrayList<
String>
();
Matcher m = pattern.matcher(data);
String text="";
while (m.find()) {
text+=","+m.group();
}
editTextAmount.setText(amount.getText().toString());
另一答案您可以从编辑文本中提取字符串,然后使用正则表达式从字符串中提取数字。就像是
Pattern p = Pattern.compile("-?\d+");
Matcher m = p.matcher(editTextAmount.getText().toString());
while (m.find()) {
System.out.println(m.group());
}
这将打印编辑文本中的所有数字。
“ - ?”允许它也捕获负数。你可以删除,因为我怀疑金额将是负数。
另一答案【在Android中的edittext中从textview获取价值】我的错。我只需要更改edittext的输入类型。
<
EditText
android:id="@+id/editTextAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:textAlignment="center" />
推荐阅读
- Android EditText禁用编辑但允许滚动
- In App Purchase产品ID是否必须以Reverse-DNS开头()
- Android Studio无法构建具有交叉模块依赖性的模块
- Android Studio 3.0+上的Kapt问题(TargetApi)
- 无法解析github库Android gradle
- Android Studio版本冲突/谷歌地图
- Android Studio突然崩溃
- 运行connectedAndroidTest并跳过卸载
- Android Studio 3.0.1中的gradle项目同步失败