I've managed to only change the color for the whole array list, trying to figure out a way to get the array's position and set different color for each row, this is my code that is changing the whole array list color:
package com.ofir.motoinfo;
import android.content.Intent;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.firebase.ui.database.FirebaseListAdapter;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import static android.media.CamcorderProfile.get;
public class ktmList extends AppCompatActivity {
private ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.models_list);
mListView = (ListView) findViewById(R.id.models_list);
final ArrayList<bikeDetails> models = new ArrayList<>();
final BikeAdapter bikeAdapter = new BikeAdapter(this,models);
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("https://xxxxxx.firebaseio.com/models");
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value = dataSnapshot.getValue(String.class);
models.add(new bikeDetails(value, ContextCompat.getColor(ktmList.this, R.color.colorAccent)));
bikeAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mListView.setAdapter(bikeAdapter);
}
}
need to override the getView method in your custom adapter class:
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = (TextView) view.findViewById(android.R.id.text1);
textView.setTextColor(Color.BLUE);
if(position == 0){
textView.setTextColor(Color.CYAN);
}
if(position == 1){
textView.setTextColor(Color.BLACK);
}
if(position == 2){
textView.setTextColor(Color.YELLOW);
}
if(position == 3){
textView.setTextColor(Color.GREEN);
}
if(position == 4){
textView.setTextColor(Color.MAGENTA);
}
if(position > 4){
textView.setTextColor(Color.BLACK);
}
return view;
}
this is just an example, modify it as you need, may also be easy to put into switch statement
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.