java - 指向循环 TextView 和按钮

标签 java android

我想制作一个程序,它将从数据库循环一个 TextView 和2个按钮, 我想让当用户单击其中一个按钮时,某些 TextView 和按钮将会消失, 我尝试了这段代码,但是只消失了最后输入的 TextView 和按钮, 我怎样才能制作一个指针或引用某些我想让它消失/消失的 TextView 或按钮的东西? 这是我的代码:

private void doActionWithDatabase() {
    // TODO Auto-generated method stub

    myDatabase.open();
    countInvitation = myDatabase.countHowManyInvitation(username);

    String groupName[] = myDatabase.fetchGroupNameInvitation(username);
    String groupId[] = myDatabase.fetchGroupIdInvitation(username);
    /*
     * String data = myDatabase.getDataFromInvitation();
     * invGroupName.setText(data);
     */
    for (int i = 0; i < countInvitation; i++) {

        // invGroupName.setText("Invitation to join " + groupName[i]);
        test1 = new TextView(this);
        test1.setText("Invitation to join " + groupName[i]);
        test1.setTag(i);
        bAccept = new Button(this);
        bAccept.setText("Accept yeh");

        bAccept.setTag(groupId[i]);
        bAccept.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Button clickedButton = (Button) v;
                String tempForGroupId = (String) clickedButton.getTag();
                Toast.makeText(getApplicationContext(),
                tempForGroupId+" " +username, Toast.LENGTH_LONG).show();
                test1.setVisibility(View.GONE);

                bAccept.setVisibility(View.GONE);
                bReject.setVisibility(View.GONE);

            /*  myDatabase.open();
                myDatabase.addGroupMember(tempForGroupId, username);
                myDatabase.deleteInvitation(tempForGroupId, username);
                myDatabase.close();*/
            }

        });

        bReject = new Button(this);
        bReject.setText("Reject");
        bReject.setTag(groupId[i]);
        bReject.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Button clickedButton = (Button) v;
                String tempForGroupId = (String) clickedButton.getTag();
                Toast.makeText(getApplicationContext(),
                        tempForGroupId+" " +username, Toast.LENGTH_LONG).show();
            /*  myDatabase.open();
                myDatabase.deleteInvitation(tempForGroupId, username);
                myDatabase.close();*/
            }

        });
        layout.addView(test1);
        layout.addView(bAccept);
        layout.addView(bReject);

    }

}

最佳答案

您应该在 for 循环中定义 TextView 和 Button 变量 类似的东西

for (int i = 0; i < countInvitation; i++) {
   final TextView test1 = new TextView(this);
   final Button bAccept = new Button(this);
   bAccept.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                test1.setVisibility(View.GONE);
            }
   });
   final Button bReject = new Button(this);
}

关于java - 指向循环 TextView 和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985732/

相关文章:

android - 语法错误,插入 "enum Identifier"以完成 EnumHeaderName

android - 如何将 CustomAdapter 与 XML 异步任务中的 ListView 一起使用

java - Spring data JPA,hql查询在选择请求中加入@ManyToMany关系

java - BufferedWriter 不向文件写入任何内容

java - MongoDB Java驱动程序: distinct and iterative

android - 如何在 Google Maps Android API v2 中计算多边形的中心?

java - 返回 Activity 时检索对象

android - GridLayoutManager setSpanCount 在按钮的 OnClickListener 中不起作用

java - java计算点之间的距离

java - JSON 架构引用