Hallo Ich habe gerade diese RecyclerView eingerichtet und kann nicht finden, was los ist. Danke im Voraus. Ich bin mir sicher, dass der RecyclerView auftaucht, obwohl sie auf dem Hauptbildschirm einen schwachen Schatten haben, wo ich runterziehen und hochziehen kann. Ich denke, das Problem kann sich um diesen Teil meiner Linienaktivität drehen:RecyclerView erscheint nicht
getSupportActionBar().setTitle(null);
recyclerView = (RecyclerView) findViewById(R.id.line_list);
adapter=new MyAdapter(getApplicationContext(),getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
Aktivitätscode;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import java.util.ArrayList;
import java.util.List;
public class Lines extends AppCompatActivity {
private RecyclerView recyclerView;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lines);
Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar_top);
setSupportActionBar(myToolbar);
getSupportActionBar().setTitle(null);
recyclerView = (RecyclerView) findViewById(R.id.line_list);
adapter=new MyAdapter(getApplicationContext(),getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_item, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int i = item.getItemId();
switch (i) {
case R.id.action_search:
Intent s = new Intent(this, SearchActivity.class);
startActivity(s);
return true;
case R.id.action_add:
Intent a = new Intent(this, AddLine.class);
startActivity(a);
return true;
case R.id.action_wheel:
Intent w = new Intent(this, Settings.class);
startActivity(w);
return true;
}
return super.onOptionsItemSelected(item);
}
public static List<Information> getData(){
List<Information> data=new ArrayList<>();
int[] icons={R.drawable.ic_place_black_24dp,R.drawable.ic_place_black_24dp2,
R.drawable.ic_place_black_24dp3};
String[] titles={"Homework","Birthday","Index"};
for(int i=0;i<titles.length && i<icons.length;i++){
Information current=new Information();
current.iconId=icons[i];
current.title=titles[i];
data.add(current);
}
return data;
}
}
.xml Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Lines">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#000000"
android:minHeight="?attr/actionBarSize">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="LINES"
android:textColor="#ffffff"
android:textSize="25sp" />
</android.support.v7.widget.Toolbar>
<android.support.v7.widget.RecyclerView
android:id="@+id/line_list"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
Row Elemente Definitionen Aktivität Code:
package com.example.patri.index01;
public class Information {
int iconId;
String title;
}
Adapter Aktivitätscode:
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Collections;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private LayoutInflater inflater;
List<Information> data= Collections.emptyList();
public MyAdapter(Context context, List<Information> data){
inflater=LayoutInflater.from(context);
this.data=data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.custom_row, parent,false);
MyViewHolder holder=new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current=data.get(position);
holder.title.setText(current.title);
holder.icon.setImageResource(current.iconId);
}
@Override
public int getItemCount() {
return 0;
}
class MyViewHolder extends RecyclerView.ViewHolder{
TextView title;
ImageView icon;
public MyViewHolder(View itemView) {
super(itemView);
title= (TextView)itemView.findViewById(R.id.listText);
icon= (ImageView) itemView.findViewById(R.id.listIcon);
}
}
}
Row .xml Code:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/listIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_place_black_24dp"
android:padding="8dp"/>
<TextView
android:id="@+id/listText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dummy text"
android:padding="8dp"
android:textColor="#000000"/>
</LinearLayout>
Try 'recyclerView.setLayoutManager zu setzen (neuer LinearLayoutManager (getApplicationContext())); ' über dem 'recyclerView.setAdapter (Adapter);' – Mrunal
Es hat nicht funktioniert. @Mrunal –
Sie sollten 'LinearLayoutManager' instanziiert werden mit dem gleichen Kontext wie der 'RecyclerView'. Wenn es in einer 'Activity' ist, verwenden Sie' this' anstelle von 'getApplicationContext()'. Dadurch werden Probleme behoben, die in Zukunft auftreten können. – Andy