for循环OnClickListener

时间:2018-04-18 17:03:59

标签: java android firebase firebase-realtime-database onclicklistener

这是我在这里的第一篇文章,如果我不够精确,那就很抱歉。

我正在开发一款Android应用,在一项活动中我有很多Textviews和一个按钮。我从我的firebase数据库中获取了一个arrayList,每当我点击Button时,我想将第一个Textview的backgroundcolor设置为红色,并使用arrayList中的String更改Textview的文本。当我在那之后单击Button时,我希望在我的arrayList和第二个textview中的第二个元素发生同样的事情。

这是我的代码:

public class ContainerShipMenuActivity extends AppCompatActivity {

private static final String TAG = null;
FirebaseDatabase database;
DatabaseReference ref;
DatabaseReference database2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_container_ship_menu);

    Intent intent = getIntent();
    String message = intent.getStringExtra("EXTRA_MESSAGE");

    // Capture the layout's TextView and set the string as its text
    TextView textView3 = findViewById(R.id.textView3);
    textView3.setText(message);

    database = FirebaseDatabase.getInstance();
    ref = database.getReference("orders/1/containerLarge");

    Log.d(TAG, "Value is: " + ref);

    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            ArrayList<String> contID= new ArrayList<>();
            int count = 0;


            for (DataSnapshot snp : dataSnapshot.getChildren()) {
                contID.add(String.valueOf(snp.getKey()));
                Log.d(TAG, "Value is: " + snp);
            }

            for (String s : contID){

                Button buttonNext = findViewById(R.id.nextcon);
                buttonNext.setOnClickListener(new Button.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        count++;
                        String cellVal = "cell_" + count;
                        int viewVal = getResources().getIdentifier(cellVal, "id", getPackageName());
                        TextView cell = findViewById(viewVal);
                        cell.setText(s);
                        cell.setBackgroundColor(Color.rgb(255,0,0));

                        TextView con = findViewById(R.id.toLoad);
                        con.setText("Next Container: " + s);
                    }
                });
            }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.w(TAG, "Failed to read value.", databaseError.toException());
        }
    });

到目前为止。我希望你能帮助我。我也是Java新手,因此解决方案非常简单。

enter image description here

祝你好运 domidoof

0 个答案:

没有答案