Custom Cursor Adapter

  • Antworten:3
Florian Schaumann
  • Forum-Beiträge: 3

20.01.2012, 02:10:29 via Website

Ich habe einen einfachen Custom Cursor Adapter implementiert und habe nun das Problem, daß der Stringvergleich nicht funktioniert. Ich erhalte egal was ich tue immer das "plus" Zeichen.
if (updown.toString().equals("down"))
und
if (updown.equals("down"))

tun beide nicht was ich von Ihnen erwarte. Ich weiß gerade nicht weiter :(

Laut dem SQlite-Manager Plugin für Eclipse steht in den entsprechenden Spalten definitiv "down" bzw "up"

1@Override
2 public void bindView(View v, Context context, Cursor c) {
3 // TODO Auto-generated method stub
4
5 String name, value, time, change, updown;
6 name = c.getString(c.getColumnIndex(StockDbAdapter.KEY_STOCK_VALUES_NAME));
7 value = c.getString(c.getColumnIndex(StockDbAdapter.KEY_STOCK_VALUES_VALUE));
8 time = c.getString(c.getColumnIndex(StockDbAdapter.KEY_STOCK_VALUES_TIME));
9 change = c.getString(c.getColumnIndex(StockDbAdapter.KEY_STOCK_VALUES_CHANGE));
10 updown = c.getString(c.getColumnIndex(StockDbAdapter.KEY_STOCK_VALUES_UPDOWN));
11 ImageView iView = (ImageView) v.findViewById(R.id.img_stock);
12 TextView title = (TextView) v.findViewById(R.id.title_stock);
13 TextView detail = (TextView) v.findViewById(R.id.detail_stock);
14
15 if (updown.toString().equals("down"))
16 {
17 iView.setImageResource(R.drawable.minus);
18 }
19 else
20 {
21 iView.setImageResource(R.drawable.plus);
22 }
23
24 title.setText(name);
25 StringBuffer sb = new StringBuffer();
26 sb.append(value + " ");
27 sb.append(time + " ");
28 sb.append(change);
29
30 detail.setText(sb.toString());
31
32
33 }
34
35 @Override
36 public View newView(Context context, Cursor cursor, ViewGroup parent) {
37 // TODO Auto-generated method stub
38 final View view = LayoutInflater.from(context).inflate(R.layout.stock_row2, parent, false);
39 return view;
40 }

— geändert am 20.01.2012, 02:17:19

Antworten
Stefan S.
  • Forum-Beiträge: 560

20.01.2012, 07:09:45 via Website

Hast Du schon mal geprüft was dann zurück kommt?

Probier mal noch upddown.toString().Trim().compareToIgnoreCase("down") == 0 //wenns gleich sein soll

Antworten
Felix
  • Forum-Beiträge: 259

20.01.2012, 15:48:51 via Website

Tach!

Florian Schaumann
Ich habe einen einfachen Custom Cursor Adapter implementiert und habe nun das Problem, daß der Stringvergleich nicht funktioniert. Ich erhalte egal was ich tue immer das "plus" Zeichen.

Das kann zwei Ursachen haben. Eine wäre, dass beide Bilder ein Plus enthalten. Dass zumindest der Code richtig abgearbeitet wird, kann man mit dem Debugger nachverfolgen. Ebenfalls mit diesem kann man sich der zweiten Ursache (Ungleichheit) nähern, indem man schaut, was denn die beiden Vergleichskandidaten konkret enthalten. Eine Stringvariable kann man „aufklappen“ und sieht zumindest wieviele und welche Zeichen enthalten sind. Schön wäre es auch noch gewesen, wenn die Bytes dazu angezeigt würden.


Felix.

Antworten
Gelöschter Account
  • Forum-Beiträge: 24

20.01.2012, 17:33:56 via Website

Einfach mal vor Deinem if() ein Log.d("bla", updown) ausgeben. Im LogCat bekommst Du dann eine wunderschöne Liste der Werte.

Gruß
Harald

Antworten