android不同子项目的列表,为列表ANDROID STUDIO中的每个项目设置不同的颜色

作者在学习Android开发过程中遇到问题,需要为ListView中的Lukasz、Marcelina和Karolina的付款显示不同颜色。文章介绍了如何在每个新添加的支付项时,根据姓名设置对应的颜色,如红色、蓝色和绿色。
摘要由CSDN通过智能技术生成

我最近开始学习android并遇到这个问题:点击按钮后, im显示新的TextView到我的ListView - 这是一个新的支付3 ppl:Lukasz/Marcelina/Karolina - 我想让每一个Lukasz的付款都显示RED,每个Marcelinas BLUE和Karolinas - GREEN为列表ANDROID STUDIO中的每个项目设置不同的颜色

我到目前为止所做的尝试是在ONCLICK的每一个CASE中给旗子(1,2或3)赋值方法和添加if语句

if(flag==1){

holder.osoba.setTextColor(Color.RED);

}

else if(flag==2){

holder.osoba.setTextColor(Color.BLUE);

}else if (flag == 3) {

holder.osoba.setTextColor(Color.GREEN);

}

但事实证明,我不设置颜色到我的列表中的特定项目,而是为al l项目(例如,当我按下'lukas'时,它会给我RED Lukasz的付款,但是当我做一个Marcelina的新付款应该是蓝色的(而Lukasz应该是红色的)时,它会使列表中的每笔付款都变成蓝色。任何想法如何设置每个List元素的不同颜色?

我的主要活动如下:

公共类MainActivity扩展ListActivity实现View.OnClickListener {

private int flag = 0;

private TextView sum;

private Button addButton;

private EditText addPrice;

private TextView sumPerPerson;

private EditText description;

private ListaWplat listaWplat;

private RadioGroup czlonek;

private RadioButton lukaszRadioButton;

private RadioButton marcelinaRadioButton;

private RadioButton karolinaRadioButton;

private TextView sumaLukasz;

private TextView sumaMarcelina;

private TextView sumaKarolina;

private float tempLukasz = 0;

private float tempMarcelina = 0;

private float tempKarolina = 0;

public float getTempMarcelina() {

return tempMarcelina;

}

public float getTempLukasz() {

return tempLukasz;

}

public float getTempKarolina() {

return tempKarolina;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

sum = (TextView) findViewById(R.id.suma);

addButton = (Button) findViewById(R.id.addButton);

addPrice = (EditText) findViewById(R.id.dodajCene);

sumPerPerson = (TextView) findViewById(R.id.sumaNaOsobe);

description = (EditText) findViewById(R.id.description);

sumaLukasz = (TextView) findViewById(R.id.sumaLukasz);

sumaMarcelina = (TextView) findViewById(R.id.sumaMarcelina);

sumaKarolina = (TextView) findViewById(R.id.sumaKarolina);

czlonek = (RadioGroup) findViewById(R.id.czlonek);

lukaszRadioButton = (RadioButton) findViewById(R.id.lukaszRadioButton);

marcelinaRadioButton = (RadioButton) findViewById(R.id.marcelinaRadioButton);

karolinaRadioButton = (RadioButton) findViewById(R.id.karolinaRadioButton);

addButton.setOnClickListener(this);

}

@Override

public void onClick(View v) {

int checkedRadioButtonId = czlonek.getCheckedRadioButtonId();

switch (checkedRadioButtonId) {

case R.id.lukaszRadioButton:

if (lukaszRadioButton.isChecked()) {

try {

tempLukasz += valueOf(addPrice.getText().toString());

} catch (NumberFormatException e) {

}

// dodanie $ do sumy lukasza

String sumaLukasza = getString(R.string.sumaLukasz);

sumaLukasza = String.format(sumaLukasza, getTempLukasz());

sumaLukasz.setText(sumaLukasza + " zl");

flag = 1;

NowaWplata nowaWplata = new NowaWplata(lukaszRadioButton.getText().toString(), addPrice.getText().toString(), description.getText().toString());

listaWplat.setWplaty(nowaWplata);

setListAdapter(new NewPaymentAdapter(this, R.layout.nowa_wplata, listaWplat.getWplaty()));

}

break;

case R.id.marcelinaRadioButton:

if (marcelinaRadioButton.isChecked()) {

try {

tempMarcelina += valueOf(addPrice.getText().toString());

} catch (NumberFormatException e) {

}

// dodanie $ do sumy marceliny

String sumaMarceliny = getString(R.string.sumaMarcelina);

sumaMarceliny = String.format(sumaMarceliny, getTempMarcelina());

sumaMarcelina.setText(sumaMarceliny + " zl");

flag=2;

NowaWplata nowaWplata = new NowaWplata(marcelinaRadioButton.getText().toString(), addPrice.getText().toString(), description.getText().toString());

listaWplat.setWplaty(nowaWplata);

setListAdapter(new NewPaymentAdapter(this, R.layout.nowa_wplata, listaWplat.getWplaty()));

}

break;

case R.id.karolinaRadioButton:

if (karolinaRadioButton.isChecked()) {

try {

tempKarolina += valueOf(addPrice.getText().toString());

} catch (NumberFormatException e) {

}

// dodanie $ do sumy karoliny

String sumaKaroliny = getString(R.string.sumaKarolina);

sumaKaroliny = String.format(sumaKaroliny, getTempKarolina());

sumaKarolina.setText(sumaKaroliny + " zl");

flag=3;

NowaWplata nowaWplata = new NowaWplata(karolinaRadioButton.getText().toString(), addPrice.getText().toString(), description.getText().toString());

ListaWplat.setWplaty(nowaWplata);

NewPaymentAdapter npa = new NewPaymentAdapter(this, R.layout.nowa_wplata, listaWplat.getWplaty());

setListAdapter(npa);

}

break;

}

String sumaCalkowita = getString(R.string.sumaCalkowita);

sumaCalkowita = String.format(sumaCalkowita, getTempKarolina() + getTempLukasz() + getTempMarcelina());

sum.setText(sumaCalkowita);

String sumaSrednia = getString(R.string.sumaSrednio);

sumaSrednia = String.format(sumaSrednia, (getTempKarolina() + getTempLukasz() + getTempMarcelina())/3);

sumPerPerson.setText(sumaSrednia);

}

class NewPaymentAdapter extends ArrayAdapter {

public LayoutInflater layoutInflater;

public NewPaymentAdapter(Context context, int textViewResourceId, List wplaty) {

super(context, textViewResourceId, wplaty);

layoutInflater = LayoutInflater.from(context);

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view = convertView;

NowaWplata nowaWplata = getItem(position);

Holder holder = null;

if(view == null){

view = layoutInflater.inflate(R.layout.nowa_wplata, null);

TextView osobyWplata = (TextView) view.findViewById(R.id.osobaWplata);

TextView kwotaWplaty = (TextView) view.findViewById(R.id.kwotaWplata);

TextView opisWplaty = (TextView) view.findViewById(R.id.opisWplata);

holder = new Holder(osobyWplata, kwotaWplaty, opisWplaty);

view.setTag(holder);

}else{

holder = (Holder) view.getTag();

}

SpannableString spannableString = new SpannableString(nowaWplata.getOsoba().toString());

holder.osoba.setText("[" + nowaWplata.getDate() + "] " + spannableString);

holder.kwota.setText("- " + nowaWplata.getWplata() + "zł");

holder.opis.setText(nowaWplata.getOpis());

return view;

}

}

static class Holder{

public TextView osoba;

public TextView kwota;

public TextView opis;

public Holder(TextView osoba, TextView kwota, TextView opis) {

this.osoba = osoba;

this.opis = opis;

this.kwota = kwota;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值