2016-06-29 9 views
3

私はcardviewの背景色を自分の提供する色と一致させたいと考えています。setCardview Jsonから受け取ったレスポンスに一致する背景色

は、ここで私は画像とテキストである私のcardview、2つのパラメータを持っている私のitem_details.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v7.widget.CardView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="0dp" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp" 
     android:layout_marginTop="9dp" 
     card_view:cardCornerRadius="3dp" 
     card_view:cardElevation="0.01dp"> 

     <RelativeLayout 
      android:id="@+id/top_layout" 
      android:layout_width="match_parent" 
      android:layout_height="160dp"> 

      <ImageView 
       android:id="@+id/img_thumbnail" 
       android:layout_width="match_parent" 
       android:layout_height="150dp" 
       android:layout_above="@+id/tvMenu" 
       android:layout_centerHorizontal="true" 
       android:scaleType="fitXY" /> 

      <TextView 
       android:id="@+id/tvMenu" 
       android:layout_width="fill_parent" 
       android:layout_height="40dp" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_gravity="bottom" 
       android:background="#ff444444" 
       android:gravity="center_vertical" 
       android:paddingLeft="5dp" 
       android:paddingRight="2dp" 
       android:text="Test" 
       android:textColor="#fff" 
       android:textSize="12sp" /> 

     </RelativeLayout> 
    </android.support.v7.widget.CardView> 
</LinearLayout> 

です。 基本的に、私はAPIから取得し、Imageviewに設定するつもりの色、そして詳細は、私のテキストビューに表示されます。ここで

は、私がsucessfully、応答 "名" を取得し、私のcardviewでそれを示してきた私のAPIの結果、

[ 
    { 
    "Name": "Item 1", 
    "colorMenu": "#666666" 
    }, 
    { 
    "Name": "Item 2", 
    "colorMenu": "#336699" 
    }, 
    { 
    "Name": "Item 3", 
    "colorMenu": "#663399" 
    } 
] 

です。 しかし、私はこのエラーに色を入れようとすると、表示されます。

com.google.gson.JsonSyntaxException:java.lang.NumberFormatExceptionは:無効なダブル:私のオブジェクト "" ここ

がmyAdapterここ

@Override 
public void onBindViewHolder(MyViewHolder holder, int position) { 
holder.mName.setText(itemList.get(position).getNmMenu()); 
holder.mColor.setBackgroundColor(Color.parseColor(String.valueOf(itemList.get(position).getColorMenu()))); 

    } 

の私onBindViewHolderである

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class MyObject { 

@SerializedName("Name") 
@Expose 
private String name; 
@SerializedName("colorMenu") 
@Expose 
private String colorMenu; 

/** 
* 
* @return 
* The name 
*/ 
public String getName() { 
return name; 
} 

/** 
* 
* @param name 
* The Name 
*/ 
public void setName(String name) { 
this.name = name; 
} 

/** 
* 
* @return 
* The colorMenu 
*/ 
public String getColorMenu() { 
return colorMenu; 
} 

/** 
* 
* @param colorMenu 
* The colorMenu 
*/ 
public void setColorMenu(String colorMenu) { 
this.colorMenu = colorMenu; 
} 

} 
+0

メソッドgetColorMenu()を表示できますか? – KunalK

+0

これは 'itemList.get(position).getNmMenu()'を返しますか? –

+0

pojoクラスを作成し、このholder.itemView.setBackgroundColor(Color.parseColor(item.getColor))のような背景色を設定すると、はるかに良いでしょう。 – Nitesh

答えて

1

私は、JSONの私の最初のオブジェクトの色の色を作ることになりました。

と結果を取得し、あなたの助けのためのこのコードでの作業

holder.mColor.setBackgroundColor(Color.parseColor(itemList.get(position).getColorMenu())); 

みんなありがとう。

0

colorMenu = ""

Color.parseColor()

if (String.valueOf(itemList.get(position).getColorMenu()) != null) { 
    holder.mColor.setBackgroundColor(Color.parseColor(String.valueOf(itemList.get(position).getColorMenu()))); 
} 
+0

、それはまだ同じエラーメッセージを持っています。 –

+0

onBindViewHolderの最後の行からのみ取得したエラーです。したがって のように 'Color.parseColor(String.valueOf(itemList.get(position).getColorMenu()))'を複数の行に分割します。 'stringValue = String.valueOf(itemList.get(position).getColorMenu())' と行ごとにデバッグ –

0

あなたがcolorMenuからあなたjsonObjectを取得した後、してみてください。この

+0

私はそれを試みましたが、それは動作しませんでした。それでも同じエラーメッセージが表示されます。 –

0

を支援し、この

yourView.setBackgroundColor(Color.parseColor(colorMenu)); 

希望を空でないcolorMenu IFF背景色を適用する空であってはなりませんそれが有用であればこれを試してください。

holder.mColor.setBackgroundColor(Color.decodeの((itemList.get(位置).getColorMenu()));

+0

これはもう "decode"とは何ですか? –

関連する問題