这是我在这里的第一篇文章,如果我不够精确,那就很抱歉。
我正在开发一款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新手,因此解决方案非常简单。
祝你好运 domidoof