1

JSON を使用してチャット アプリを作成するために if-else ステートメントを設定しようとしています。if-else ステートメントで JSON を読み取り、必要な場所にラベルを配置したいと考えています。

このように想像してみてください。私は「A」で、「B」とチャットしています。

メッセージが「B」(私ではない)からのものである場合、メッセージはリストビューの右側に配置されたラベルに配置されます。ELSE - メッセージを送信すると、リストビュー内の左のラベルに配置されます。

ステートメントで使用する文字列は「TAG_FACEBOOK」です。

私のリストアダプター:

    ListAdapter adapter = new SimpleAdapter(this, contactList,
            R.layout.list_item, new String[] { TAG_CONTEXT, TAG_FACEBOOK }, new int[] {
                    R.id.context, R.id.facebook });

setListAdapter(adapter);

次のようなif-elseステートメントを使用して解決しようとしました:

if (TAG_FACEBOOK == "B"){
    ListAdapter adapter = new SimpleAdapter(this, contactList,
            R.layout.list_item, new String[] { TAG_CONTEXT, TAG_FACEBOOK }, new int[] {
                    R.id.context, R.id.facebook });

    setListAdapter(adapter);
}
else {
    ListAdapter adapter = new SimpleAdapter(this, contactList,
            R.layout.list_item, new String[] { TAG_CONTEXT, TAG_FACEBOOK }, new int[] {
                    R.id.contextL, R.id.facebookL });

    setListAdapter(adapter);
}

しかし、Eclipseはそれが「デッドコード」だと言っています。どうすればいいですか?

4

4 に答える 4

4

TAG_FACEBOOK == "B"文字列の内容ではなく、参照のみを比較します。

を使用しTAG_FACEBOOK.equals("B")ます。

于 2013-05-19T17:09:58.777 に答える
1

したがって.equals()、他の人が言及したように文字列比較に使用しますが、アダプターは画面のどちら側でビューをレンダリングする必要があるかをチェックする必要があるように思えます(getView()メソッド内)。

于 2013-05-19T19:03:57.730 に答える
1

まず、Java では次のメソッドを使用して 2 つの文字列 (s1 と s2) を比較します。

s1.equals(s2)

2 つ目は、TAG_FACEBOOK が定数であるため、Eclipse はこれがデッド コードであることを示しています。この文字列はユーザ​​ーに基づいて動的にする必要があります。これにより、文字列に応じて if または else ブロックの両方に実際に到達できるようになります。

于 2013-05-19T17:12:52.327 に答える