繁体   English   中英

指向循环的textview和Button

[英]Pointing to a looped textview and Button

我想制作一个程序,它将在数据库中循环显示一个文本视图和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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM