Merhaba Her liste öğesinde bir başlık, bir ruh hali ve bir video içeren bir geridönüşüm görünümüne sahip bir video günlük parçası oluşturmaya çalışıyorum. Bazı sebeplerden dolayı video görüntüsü bile gösterilmiyor. VideofilePath doğru şekilde kaydediyor ve println ifadeleriyle kontrol ettim. Hata görmüyorum, ama tamamen çöktü. Bir sonraki liste öğesi video görüntülenmeden önce başlar. İşte VideoGörüntüyü veya videoyu oynatmıyor RecyclerView
benim ViewHolder sınıfıpublic class JournalViewHolder extends RecyclerView.ViewHolder{
private TextView title;
private TextView mood;
private VideoView mVideoView;
MediaController mMediaController;
Context mContext;
public JournalViewHolder(View view, Context context){
super(view);
mContext = context;
title = (TextView)view.findViewById(R.id.JournalTitle);
mood = (TextView)view.findViewById(R.id.JournalMood);
mVideoView = (VideoView)view.findViewById(R.id.JournalVideo);
mMediaController = new MediaController(context);
}
public void bind(JournalEntry journalEntry){
title.setText(journalEntry.getTitle());
mood.setText(journalEntry.getMood());
if(journalEntry.getVideoFileName() != null){
Uri uri = Uri.parse(journalEntry.getVideoFileName());
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.setMediaController(mMediaController);
mVideoView.setZOrderOnTop(true);
mVideoView.start();
}
}
} Burada
benim adaptör sınıfıpublic class JournalRecyclerViewAdapter extends RecyclerView.Adapter<JournalViewHolder> {
özel Liste mJournalEntries olduğu; özel İçerik mContext;
public JournalRecyclerViewAdapter(List<JournalEntry> entries, Context context){
mJournalEntries = entries;
mContext = context;
}
@Override
public JournalViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.journal_list_items, parent, false);
JournalViewHolder holder = new JournalViewHolder(view, mContext);
return holder;
}
@Override
public void onBindViewHolder(JournalViewHolder holder, int position) {
JournalEntry entry = mJournalEntries.get(position);
holder.bind(entry);
}
@Override
public int getItemCount() {
return mJournalEntries.size();
}
} İşte öğelerin listesini ve recyclerview
public class JournalView extends FragmentLoggingLifeCycler {
private RecyclerView mRecyclerView;
DataAccess mDataAccess;
List<JournalEntry> mEntryList;
public static final String USERNAME_KEY = "username";
public static final String PASSWORD_KEY = "password";
String password;
String username;
User currentUser;
private Context mContext;
public JournalView() {
// Required empty public constructor
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mContext = activity.getApplicationContext();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext = context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_journal_view, container, false);
Bundle data = getArguments();
username = data.getString(USERNAME_KEY);
password = data.getString(PASSWORD_KEY);
LinearLayoutManager manager = new LinearLayoutManager(getActivity());
mDataAccess = DataAccess.getDataAccess(container.getContext());
currentUser = mDataAccess.getLoginUser(username, password);
mEntryList = mDataAccess.getAllJournals();
//mDataAccess.mDatabase.delete(Scheme.Journal.NAME, null, null);
// mEntryList = trimList(mEntryList, currentUser.getUsername());
// for(int counter = 0; counter < mEntryList.size(); counter++){
// System.out.println(mEntryList.get(counter).getTitle());
// }
mRecyclerView = (RecyclerView)view.findViewById(R.id.JournalList);
mRecyclerView.setLayoutManager(manager);
mRecyclerView.setAdapter(new JournalRecyclerViewAdapter(mEntryList, mContext));
return view;
}
private static List<JournalEntry> trimList(List<JournalEntry> entries, String username){
List<JournalEntry> returnedList = new ArrayList<>();
for(int i = 0; i< returnedList.size(); i++){
System.out.println(entries.get(i).getUsername()+ ", " +username);
if(entries.get(i).getUsername().equals(username)){
returnedList.add(entries.get(i));
}
}
return returnedList;
}
}
ve şimdi burada benim XML dosyalarıdır başlatır benim sınıftır.
<android.support.v7.widget.RecyclerView
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:layout_weight="1"
android:id="@+id/JournalList">
Liste Ürün dosyaları
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="2">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="@string/Title"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/JournalTitle"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:text="@string/Mood"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/JournalMood"/>
</LinearLayout>
<VideoView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/JournalVideo"
android:visibility="visible"/>
Ancak Videolar ve RecyclerView için verilen yanıtlar gerçekten çok azdır, ayrıca Uygulama çökmelerine yukarı veya aşağı kaydırmaya çalıştığımda, bir RecyclerView uygulamasında video yükleme sorunu yaşıyorum ve bu, –
Null işaretçisini FullScreenVideoLayout olduğunu biliyor mu? Ne kullanıyorum –
Ben Github üzerinde projeni gördüm, ama bazı ekran görüntüleri ve bazı belgeleri @ atabouraya deneyebilirsiniz. Teşekkürler –