Ich habe eine App erstellt, die Informationen über Filme zeigt. Nun, das Problem ist, dass ich keine Markierung setzen oder den Titel fett formatieren kann, wenn der Benutzer auf das Listenansichtselement klickt. So kann der Benutzer wissen, welche Filme er/sie gesehen hat.
Ich habe eine boolesche Variable in der Methode getView() hinzugefügt, aber das hat nicht geholfen, das Problem zu lösen.
Dies ist screenshot meiner App:Wie markiert man ein Listenelement als gelesen?
MainActivity.java
import android.content.Intent;
import android.graphics.Movie;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.Arrays;
public class MainActivity extends AppCompatActivity {
CustomAdapter myadapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int[] images = {R.drawable.dfg,R.drawable.godf,R.drawable.godf2,R.drawable.thedark,R.drawable.twelv,R.drawable.shindl};
String[] movie_titles = getResources().getStringArray(R.array.Movie_titles);
String[] movie_ratings=getResources().getStringArray(R.array.Movie_ratings);
String[] movie_janrs=getResources().getStringArray(R.array.Movie_janrs);
int[] arrows = {R.drawable.hjk,R.drawable.hjk,R.drawable.hjk,R.drawable.hjk,R.drawable.hjk,R.drawable.hjk};
setContentView(R.layout.activity_main);
ListView mylist = (ListView) findViewById(R.id.list);
myadapter = new CustomAdapter(this,images,movie_titles,movie_ratings,movie_janrs,arrows);
if(mylist!=null){
mylist.setAdapter(myadapter);
}
mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position==0){
Intent movie1 = new Intent(MainActivity.this,MovieOne.class);
startActivity(movie1);
}
}
});
}
}
CustomAdapter.java
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomAdapter extends BaseAdapter {
Context context;
static LayoutInflater vi=null;
int[] images;
String[] movie_titles;
String[] movie_ratings;
String[] movie_janrs;
int[] arrows;
public CustomAdapter(Context context, int images[], String movie_titles[], String movie_ratings[], String movie_janrs[],int arrows[]){
this.context = context;
this.images=images;
this.movie_titles=movie_titles;
this.movie_ratings=movie_ratings;
this.movie_janrs=movie_janrs;
this.arrows=arrows;
}
@Override
public int getCount() {
return movie_titles.length;
}
@Override
public Object getItem(int position) {
return getItemId(position);
}
@Override
public long getItemId(int position) {
return position;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if(convertView ==null){
vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=vi.inflate(R.layout.custom_layout,null);
}
if(convertView!=null){
ImageView tvImage = (ImageView) convertView.findViewById(R.id.one);
TextView tvTittle = (TextView) convertView.findViewById(R.id.two);
TextView tvRating = (TextView) convertView.findViewById(R.id.three);
TextView tvJanr = (TextView) convertView.findViewById(R.id.four);
ImageView tvImage2 = (ImageView) convertView.findViewById(R.id.six);
if(tvImage!=null && tvTittle!=null && tvRating!=null && tvJanr!=null){
tvImage.setImageResource(images[position]);
tvTittle.setText(movie_titles[position]);
tvRating.setText(movie_ratings[position]);
tvJanr.setText(movie_janrs[position]);
tvImage2.setImageResource(arrows[position]);
}
}
return convertView;
}
}
MovieOne.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MovieOne extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.movie_one);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onSupportNavigateUp() {
finish();
return true;
}
}