android:如何在运行时更改ListViewItem背景?(不供选择)
在我的android应用程序中,我需要分别更改列表视图中每个项目的背景色。android:如何在运行时更改ListViewItem背景?(不供选择),android,listview,Android,Listview,在我的android应用程序中,我需要分别更改列表视图中每个项目的背景色。 我没有找到任何示例或有用的文档。如果double的值为0,则背景应更改。我设置ListView属性:android:drawSelectorOnTop=“true”并使用以下代码: (所有功能,只有背景不变!)我如何解决这个问题 public void onClickButtonOKStand (View view) { EditAusgabe = (EditText) findViewById(R.id
我没有找到任何示例或有用的文档。如果double的值为0,则背景应更改。我设置ListView属性:
android:drawSelectorOnTop=“true”
并使用以下代码:(所有功能,只有背景不变!)我如何解决这个问题
public void onClickButtonOKStand (View view) {
EditAusgabe = (EditText) findViewById(R.id.EditText01);
if (EditAusgabe.getText().toString().length() <= 0) {
Toast T = Toast.makeText(getApplicationContext(), "Eingabe ungültig! Geben Sie einen Betrag ein", Toast.LENGTH_LONG);
T.show();
return;
}
if (EditAusgabe.getText().toString() == ".") {
Toast T = Toast.makeText(getApplicationContext(), "Eingabe ungültig! Geben Sie einen Betrag ein", Toast.LENGTH_LONG);
T.show();
return;
}
Z = Double.parseDouble(EditAusgabe.getText().toString());
if (VArt == "Down") {
if (VStand >= Z) {
VStand = VStand - Z;
if (VStand <= 0.39) {
Toast T = Toast.makeText(getApplicationContext(), "Ihr Guthaben ist aufgebraucht!", Toast.LENGTH_strong textLONG);
T.show();
VStand = 0.00;
****************** The next line is my problem: ******************************
StartListe.getChildAt(Position).setBackgroundColor(color.holo_red_light);
}
}
else if (VStand < Z) {
Toast T = Toast.makeText(getApplicationContext(), "Vorgang nicht möglich! Ihr Konto liegt bei " + FORMAT.format(VStand) + " €.", Toast.LENGTH_LONG);
T.show();
EditAusgabe.setText("");
return;
}
}
if (VArt == "Up") {
VStand = VStand + Z;
}
Stand.set(Position, FORMAT.format(VStand));
Liste.set(Position, (VName + " " + FORMAT.format(VStand) + " € / " + FORMAT.format(VWert) + " €"));
ListeAktualisieren();
}
public void ListeAktualisieren () {
setContentView(R.layout.activity_ausgabenkontrolle);
ArrayAdapter<String> ListenAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Liste);
StartListe = (ListView) findViewById(R.id.listView1);
StartListe.setAdapter(ListenAdapter);
StartListe.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> ListenAdapter, View view, int i, long ID) {
// TODO Auto-generated method stub
Item = view;
Position = ListenAdapter.getPositionForView(view);
VName = Namen.get(Position);
VArt = Arten.get(Position);
VWert = Double.parseDouble(Werte.get(Position).toString());
VStand = Double.parseDouble(Stand.get(Position).toString());
setContentView(R.layout.activity_stand);
if (VArt == "Down") {
if (VStand == 0) {
Toast T = Toast.makeText(getApplicationContext(), "Ihr Guthaben ist aufgebraucht!", Toast.LENGTH_LONG);
T.show();
}
}
}
});
registerForContextMenu(StartListe);
}
public void onclickbuttonnokstand(视图){
EditAusgabe=(EditText)findViewById(R.id.EditText01);
if(EditAusgabe.getText().toString().length()=Z){
VStand=VStand-Z;
如果(VStand我认为,响应单击而更改背景颜色的方法是将更改应用到onClickListener实现中提供给您的传入视图。您似乎在摆弄SetContentView等。这不是一个好办法。SetContentView设置您的总体布局,很少有理由将其称为n在活动中一次。单击项目/视图时,颜色不会改变。只有在1.单击另一页的按钮(我有3页)和2.受控双精度(VStand)时,颜色才会改变然后值为0。我使用setContentView在3个页面/XML文件之间切换。在onItemClick中,我定义了Position作为单击视图的位置,并在上面的空白处(onclickButtonOKStand)说:在位置“Position”上设置列表子项(即ListView中的项???)的backgoundcolor我错了吗?我错过了什么方面吗?