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

时间:2014-07-31 15:01:42

标签: android button onclick textview

这是一个包含n个产品的数字菜单,产品本身被插入到horizo​​ntalScrollView中,其值包括:数量,可选项目等......

我希望通过单击按钮,TextView中显示的数字值会增加/减少......

有可能吗?

...    
  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){

     ????

 }

由于

2 个答案:

答案 0 :(得分:0)

如果你想获取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);

 }

希望这有助于一些人,如果不随意发表评论并澄清你想要的内容。

答案 1 :(得分:0)

在TextView中,您需要自己手动设置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());

 }