在ListView中更改文本内容

时间:2016-02-21 19:57:24

标签: android listview

我试图在点击时更改ListView中的文本内容。以下是我将计数增加1

的代码
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
    TextView content = (TextView)findViewById(R.id.txt);
    String currentText = (String)content.getText();
    System.out.println(currentText.length());

    int counter=0;
    String a_letter = Character.toString(currentText.charAt(currentText.length() - 1));
    System.out.println(a_letter);
    counter = Integer.parseInt(a_letter);
    counter = counter+1;

    currentText = currentText.substring(0,currentText.length()-1);
    currentText = currentText + Integer.toString(counter);
    content.setText(currentText);

}

See this image

问题是,当我点击“Caps x1”时,它必须增加Caps的计数器,但它会增加Bricks的计数器。 错误是什么?

2 个答案:

答案 0 :(得分:0)

您应该按view.findViewByid(int id)方法找到内容视图,因为我看到fidnViewById方法是默认的活动。要在视图中查找特定项目,您需要执行view.FindViewbyId()。例如,在你的情况下,

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    TextView content = (TextView)view.findViewById(R.id.txt);
    String currentText = (String)content.getText();
    System.out.println(currentText.length());

    int counter=0;
    String a_letter = Character.toString(currentText.charAt(currentText.length() - 1));
    System.out.println(a_letter);
    counter = Integer.parseInt(a_letter);
    counter = counter+1;

    currentText = currentText.substring(0,currentText.length()-1);
    currentText = currentText + Integer.toString(counter);
    content.setText(currentText);

}

答案 1 :(得分:0)

你应该使用一些模型。让我们说一个项目列表,其中项目的名称和数量。然后点击你应该得到这个项目的位置。 增加模型中的数量,并在适配器上调用notifyDataSetChanged()。