Tag: android adapter

在RecyclerView.Adapter中单击传递数据

我的片段上有一个RecyclerView ,显示我从FTP服务器加载的某些文件。 我正在尝试为每个项目设置DialogFragment ,因此当单击它时,将显示DialogFragment ,用户可以在其中选择是下载还是打开文件。 我的问题是: 我需要向我的对话框发送2件事: 目标片段,在用户选择要执行的操作后下载/打开文件。 这很容易用setTargetFragment() ,唯一的问题是我无法访问我的RecyclerView.ViewHolder的片段。 要下载/打开的文件的名称。 这样对话框就会将其发送到目标片段。 这里的问题是我无法访问RecyclerView.ViewHolder的数据集,因为它的静态和我的数据集不是。 为什么在ViewHolder上 如果有更好的地方,我会很高兴听到。 我在RecyclerView.ViewHolder尝试的原因是它可以访问该位置(被点击的项目)。 我想过在onBindViewHolder()上做这个,但是我可以访问数据集而不是位置。 我的适配器代码: public class FilesAdapter extends RecyclerView.Adapter { public final String TAG = “FILES_ADAPTER”; private FTPFile[] dataset; //some methods and stuff… public static class ViewHolder extends RecyclerView.ViewHolder { public final String TAG = “FILES_VH”; private final TextView nameTextView; private […]

尝试在空对象引用上调用虚方法’int java.lang.String.length()’

所以我有带有Tabs和RecyclerView Android应用程序。 当我运行我的应用程序时,它崩溃了。 logcat的: java.lang.NullPointerException: Attempt to invoke virtual method ‘int java.lang.String.length()’ on a null object reference at java.io.StringReader.(StringReader.java:47) at android.text.HtmlToSpannedConverter.convert(Html.java:442) at android.text.Html.fromHtml(Html.java:136) at android.text.Html.fromHtml(Html.java:99) at com.example.app.MyRecyclerViewAdapter2.onBindViewHolder(MyRecyclerViewAdapter2.java:80) at com.example.app.MyRecyclerViewAdapter2.onBindViewHolder(MyRecyclerViewAdapter2.java:17) … 在com.example.app.MyRecyclerViewAdapter2.onBindViewHolder(MyRecyclerViewAdapter2.java:80) 它指向代码的这一行 listRowViewHolder.postId.setText(Html.fromHtml(listItems.getPostId())); // This line of code leads to crashing of app 如果我删除此行,我的应用程序将正常工作。 MyRecyclerViewAdapter2.java: package com.example.app; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.text.Html; […]

如何解决“适配器的内容已更改但ListView未收到通知”exception

我在同一主题上发现了很多问题。 但我无法弄清楚我在这里做错了什么。 例外:“适配器的内容已更改,但ListView未收到通知。请确保您的适配器的内容不是从后台线程修改,而是仅从UI线程修改” 我有一个TextWatcher到我的AutoCompleteTextView。 我想在文本更改时更新下拉列表。 我从两个不同的来源获取下拉列表的数据。 并且每个人都在不同的线程内运行。 mTextWatcher = new TextWatcher() { public void afterTextChanged(Editable editable) { } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { suggestionNewText = s.toString(); list = new ArrayList<Map>(); runOnUiThread(new Runnable() { @Override public void run() […]

Android Listview行重复项

我有一个列表,其中我从共享首选项获得的具体数字(位置)应显示imageview(表示当前正在播放的歌曲)。 但是我得到了这个位置,但那个项目也显示在其他行上。 滚动列表时出现问题。 *当我退出另一个活动时,这种情况正在发生,而在我的简历中,我发送到此: @Override protected void onResume() { super.onResume(); if(AlbumDetails.mediaPlayer!=null) adapter = new PlaylistAdapter(this, songs); list.setAdapter(adapter); } 这是我的代码: public class PlaylistAdapter extends BaseAdapter { private Activity activity; private static LayoutInflater inflater = null; private ArrayList data; private DatabaseHelper db; private SharedPreferences prefs; int playpos; public PlaylistAdapter(Activity a, ArrayList songs) { activity = a; data […]

RecyclerView没有连接适配器; 跳过布局,数据不显示

我正在制作一个音乐播放器应用程序,我正在使用加载器将歌曲数据加载到适配器,该适配器将使用RecyclerView显示。 但是,我得到这个奇怪的错误,我的适配器方法无法正常工作。 只调用适配器的构造函数方法。 尽管在堆栈溢出中通过所有可用的解决方案,我也得到“没有适配器连接;跳过布局”。 几点需要注意: 我已经在recyclerview中尝试了所有解决方案“无适配器连接;跳过布局” 没有连接适配器; 跳过布局线程和所有关联的重复线程。 我使用的RecyclerView不是常规的,而是FastScrollRecyclerView ,但由于它从常规的RecyclerView扩展而且github上没有提到相关的问题,所以我确信在这里使用这个库不是问题 我也尝试过没有从这个线程调用适配器方法的所有解决方案,但没有运气。 这是代码: SongsFragment.java public class SongsFragment extends Fragment implements LoaderManager.LoaderCallbacks<List>{ public static final String LOG_TAG = SongsFragment.class.getSimpleName(); private static final int LOADER_ID = 1; private ContentResolver mContentResolver; private SongListAdapter mSongListAdapter; private List mSongs; @BindView(R.id.rvSongs) FastScrollRecyclerView mRecyclerView; public SongsFragment() {} @Override public void onCreate(@Nullable Bundle savedInstanceState) […]

如何使用adapter.notifyDataSetChanged(); 我必须使用这些行来解决我的错误

ItemListBaseAdapter.java public class ItemListBaseAdapter extends BaseAdapter { private static ArrayList itemDetailsrrayList; private Integer[] imgid = { R.drawable.vegeterian, R.drawable.nonveg, R.drawable.pickels, R.drawable.soup, R.drawable.sweets, R.drawable.cakes, R.drawable.icecreams, R.drawable.chinesevegdishes, R.drawable.chinesenonveg, R.drawable.chinesenoodles, R.drawable.chinesesoup, R.drawable.godhumaivegadai, R.drawable.soyamorekoozh, R.drawable.tomatokulambu, R.drawable.tomatoupma, R.drawable.vadanavratrispecial, R.drawable.eggkurma, R.drawable.milagu, R.drawable.rasam, R.drawable.vegetablekootu, R.drawable.avial, R.drawable.kothavarangaicurry, R.drawable.allepeyfishcurry, R.drawable.spicymadraschicken, R.drawable.prawns, R.drawable.keralachickenstew, R.drawable.nilgirichickenkorma, R.drawable.pepperchickencurry, R.drawable.chettiandchicken, R.drawable.prawnmasala, R.drawable.beeffry, R.drawable.crispyfish, R.drawable.amlapickle, R.drawable.avakaipickle, R.drawable.capsicumpickle, R.drawable.lemonpickle, R.drawable.onionpickle, R.drawable.mangopickle, R.drawable.tendermangopickle, […]