如何更改在android中以编程方式插入的textview的值?
这是一个有n个产品的数字菜单,产品本身被插入到一个水平滚动视图中,其中包含值:数量、可选项等 我希望通过单击按钮,文本视图中显示的数值将增加/减少 可能吗如何更改在android中以编程方式插入的textview的值?,android,button,onclick,textview,Android,Button,Onclick,Textview,这是一个有n个产品的数字菜单,产品本身被插入到一个水平滚动视图中,其中包含值:数量、可选项等 我希望通过单击按钮,文本视图中显示的数值将增加/减少 可能吗 ... for(int l=0; l<jsonarraySub.length(); l++){ JSONObject obj = jsonarraySub.getJSONObject(l); String stIdProd = obj.getString("codigo");
...
for(int l=0; l<jsonarraySub.length(); l++){
JSONObject obj = jsonarraySub.getJSONObject(l);
String stIdProd = obj.getString("codigo");
TextView qtd = new TextView(CardapioActivity.this);
qtd.setText("1");
qtd.setTextColor(Color.parseColor("#ffffff"));
qtd.setId(Integer.parseInt(stIdProd));
qtd.setTextSize((float) 20);
rl4.addView(qtd);
...
RelativeLayout.LayoutParams paramsMenos = new RelativeLayout.LayoutParams(70,66);
paramsMenos.topMargin = 322;
paramsMenos.leftMargin = x+640;
menos[l].setLayoutParams(paramsMenos);
menos[l].setId(Integer.parseInt(stIdProd));
menos[l].setBackgroundResource(R.drawable.btnmenos);
menos[l].setOnClickListener(new Button.OnClickListener() {
public void onClick(View v){
setMenos(stIdProd);
}
});
}
...
/*Decrease value of a textview
*/
public void setMenos(String id){
????
}
。。。
对于(int l=0;l,如果要获取TextView的现有值并减小,则应执行以下操作
/*Decrease value of a textview
*/
public void setMenos(String id){
TextView view = (TextView) findViewById(Integer.parseInt(id));
int i = Integer.parseInt(view.getText());
i--;
view.setText(i);
}
希望这能对一些人有所帮助,如果他们不愿意的话,可以随意评论和澄清您想要的内容。在您创建的文本视图中,您可以自己手动设置ID
qtd.setId(Integer.parseInt(stIdProd));
因为您自己设置ID,并将该ID传递给setMenos,所以您应该能够找到要更改的TextView
你试过这样的东西吗
/*Decrease value of a textview
*/
public void setMenos(String id){
TextView thisView = (TextView) findViewByID(Integer.parseInt(id));
Int currVal = Integer.parseInt(thisView.getText());
currVal--;
thisView.setText(currVal.toString());
}
您想增加的是“qtd”对象???只需使用.setText()将文本设置为新值。您好,谢谢。他似乎不认为ID为的TextView已通过..尝试使用这种方式,但它显示:07-31 17:09:06.556:E/AndroidRuntime(13118):致命异常:main 07-31 17:09:06.556:E/AndroidRuntime(13118):java.lang.NumberFormatException:Invalid int:“…
我可以想出一些其他方法来格式化代码,但首先我想知道您设置的所有ID是否都是数字的?如果您将String stIdProd=obj.getString(“codigo”);
更改为int stIdProd=Integer.parseInt(obj.getString(“codigo”));
,并更新对stIdProd
的引用,以便不必解析Int,您仍然会得到错误吗?是的,它确实是一个整数值。将String stIdProd=obj.getString(“codigo”);更改为Int stIdProd=integer.parseInt(obj.getString(“codigo”))
它对我很有效,谢谢……但问题是,为什么?基本上不会是同一件事?非常感谢您的帮助。它应该是同一件事,但每次引用stIdProd时,您都会调用Integer.parseInt。在这段代码中,您没有将stIdProd用作字符串,因此将其存储为字符串和co没有意义如果你能成功地将stIdProd存储为Int,那么你就知道从那时起你就可以将它作为Int使用了。