2017-02-02 3 views
1

Hallo, also habe ich eine einfache App erstellt, die Kartenansicht und Recycler-Ansicht verwendet, um Bilder anzuzeigen.mein cardView-Layout wird nicht angezeigt, während die App läuft

Nun, wenn ich die app nur eine leere App mit dem Namen des App ausführen zeigt

Hier oben ist die Code

Hauptaktivität

Datei
public class MainActivity extends AppCompatActivity { 

RecyclerView recyclerView; 
List<listItem> item; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    recyclerView = (RecyclerView) findViewById(R.id.recycler_Container); 
    recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
    myAdapter adapter = new myAdapter(dataFile.getListData()); 
    recyclerView.setAdapter(adapter); 



}} 

Adapter-

public class myAdapter extends RecyclerView.Adapter<myAdapter.pageHolder> { 

List<listItem> listData; 
LayoutInflater inflater; 

public myAdapter(List<listItem> listData) { 
    this.listData = listData; 
} 

public class pageHolder extends RecyclerView.ViewHolder{ 

    ImageView image; 
    TextView text; 
    View container; 

    public pageHolder(View itemView) { 
     super(itemView); 

     image = (ImageView) itemView.findViewById(R.id.thumbnail); 
     text = (TextView) itemView.findViewById(R.id.card_text); 
     container = itemView.findViewById(R.id.layout_container); 

    }} 

@Override 
public myAdapter.pageHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card,parent,false); 
    return new pageHolder(view); 
} 

@Override 
public void onBindViewHolder(myAdapter.pageHolder holder, int position) { 

    listItem item =listData.get(position); 
    holder.text.setText(item.getTitle()); 
    holder.image.setImageResource(item.getIconId()); 

} 

@Override 
public int getItemCount() { 
    return listData.size(); 
}} 

Liste Element Datei

public class listItem { 

String title; 
int iconId; 

public listItem(int iconId, String title) { 
    this.iconId = iconId; 
    this.title = title; 
} 

public int getIconId() { 
    return iconId; 
} 

public void setIconId(int iconId) { 
    this.iconId = iconId; 
} 

public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
}} 

Datendatei

public class dataFile { 


public static int icons[]={R.drawable.album9,R.drawable.album1,R.drawable.album3,R.drawable.album4,R.drawable.album5,R.drawable.album6, 
     R.drawable.album7,R.drawable.album8,R.drawable.album10,R.drawable.album11,R.drawable.album12,R.drawable.album13,R.drawable.album14,R.drawable.album15, 
     R.drawable.album16}; 

public static String title[] = {"Album"}; 


public static List<listItem> getListData(){ 

    List<listItem> data = new ArrayList<>(); 
    for(int i =0;i<icons.length;i++){ 
     new listItem(icons[i],"ALBUM"+i); 
    } 
    return data; 
}} 

Haupt XML-Datei

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.adi.customcardview.MainActivity"> 
<android.support.v7.widget.RecyclerView 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:padding="16dp" 
    android:id="@+id/recycler_Container"/></RelativeLayout> 

enter image description here

Kartenlayout XML-Datei

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/layout_container" 
    app:cardCornerRadius="5dp" 
    app:cardBackgroundColor="#efdada" 
    app:cardElevation="5dp"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <ImageView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:id="@+id/thumbnail" 
      android:padding="12dp" 
      android:src="@drawable/album9"/> 
     <TextView 
      android:text="ALBUM NAME" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="55dp" 
      android:id="@+id/card_text" 
      android:textSize="18sp" 
      android:layout_alignParentTop="true" 
      android:layout_toEndOf="@+id/thumbnail"/> 
    </RelativeLayout></android.support.v7.widget.CardView></LinearLayout> 

Antwort

1

Wie ich verstehe, in die getListData Methode, die Sie die ListItem-Elemente nicht zur Datenliste hinzufügen. So versuchen Sie, die Methode wie folgt zu ändern:

public static List<listItem> getListData(){ 

    List<listItem> data = new ArrayList<>(); 
    for(int i =0;i<icons.length;i++){ 
     data.add(new listItem(icons[i],"ALBUM"+i)); 
    } 
    return data; 
} 
+0

Oh yeah Danke! – hamster

Verwandte Themen