Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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中以编程方式插入的textview的值?_Android_Button_Onclick_Textview - Fatal编程技术网

如何更改在android中以编程方式插入的textview的值?

如何更改在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");

这是一个有n个产品的数字菜单,产品本身被插入到一个水平滚动视图中,其中包含值:数量、可选项等

我希望通过单击按钮,文本视图中显示的数值将增加/减少

可能吗

...    
  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使用了。