W
washpuda
Neues Mitglied
- 0
Wo habe ich den hier den Denkfehler? Ich habe mir bereits viele Beispiele im Internet angeschaut, ich sehe nicht was ich anders mache. Ich hoffe es kann mir jemand helfen.
Ich versuche eine einfache horizontale Recyclerview zu erstellen und erhalte eine NullpointerException. Wenn ich if(holder.textView == null){return;} einkommentiere, werden einige Texte gesetzt, bei den anderen bleibt der Inhalt einfach "TextView" erhalten und die Reihenfolge der Items ist durcheinander.
Die Darstellung und alles andere ist perfect, lediglich die Zuordnung zu den textViews funktioniert irgendwie nicht richtig.
Ich versuche eine einfache horizontale Recyclerview zu erstellen und erhalte eine NullpointerException. Wenn ich if(holder.textView == null){return;} einkommentiere, werden einige Texte gesetzt, bei den anderen bleibt der Inhalt einfach "TextView" erhalten und die Reihenfolge der Items ist durcheinander.
Die Darstellung und alles andere ist perfect, lediglich die Zuordnung zu den textViews funktioniert irgendwie nicht richtig.
Code:
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
import de.bajestro.picmaptogo.R;
public class ChooseAuswDialog extends AppCompatActivity {
RecyclerView layerTabListView;
private RecyclerView.Adapter adapterLayerTap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_ausw_dialog);
layerTabListView = findViewById(R.id.layerTabList);
layerTabListView.setHasFixedSize(true);
List<String> testList = new ArrayList<>();
testList.add("Itme 1");
testList.add("Itme 2");
testList.add("Itme 3");
testList.add("Itme 4");
testList.add("Itme 5");
testList.add("Itme 6");
testList.add("Itme 7");
testList.add("Itme 8");
testList.add("Itme 9");
adapterLayerTap = new LayerListRecyclerViewAdapter(testList);
layerTabListView.setAdapter(adapterLayerTap);
LinearLayoutManager layoutManager
= new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
layerTabListView.setLayoutManager(layoutManager);
Button btnCancel = findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ChooseAuswDialog.this.finish();
}
});
}
public class LayerListRecyclerViewAdapter extends RecyclerView.Adapter<LayerListRecyclerViewAdapter.LayerListViewHolder>{
List<String> layers;
public LayerListRecyclerViewAdapter(List<String> layers) {
this.layers = layers;
}
@Override
public LayerListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_simple_string, parent, false);
return new LayerListViewHolder(view);
}
@Override
public void onBindViewHolder(final LayerListViewHolder holder, final int position) {
String layer = layers.get(position);
// if(holder.textView == null){return;}
holder.textView.setText(layer);
}
@Override
public int getItemCount() {
return layers.size();
}
public class LayerListViewHolder extends RecyclerView.ViewHolder{
//public String layer;
public View mView;
TextView textView;
public LayerListViewHolder(View view) {
super(view);
mView = view;
textView = findViewById(R.id.stringTextView);
}
}
}
}