Java 刷新按钮不工作
我的刷新Java 刷新按钮不工作,java,android,Java,Android,我的刷新按钮在Android Studio中不起作用。这是我的主要活动代码(BreedList)。当我点击按钮时,列表应该会刷新。请帮我做这个。 我使用更新繁殖方法来刷新它。但它不起作用。我已经创建了menu_main,并将id指定为refresh。并据此致电 public class BreedListActivity extends AppCompatActivity implements DownloadCallback { private boolean mTwoPane; pri
按钮
在Android Studio
中不起作用。这是我的主要活动代码(BreedList)。当我点击按钮时,列表应该会刷新。请帮我做这个。
我使用更新繁殖方法来刷新它。但它不起作用。我已经创建了menu_main,并将id指定为refresh。并据此致电
public class BreedListActivity extends AppCompatActivity implements
DownloadCallback {
private boolean mTwoPane;
private SimpleItemRecyclerViewAdapter adapter;
private int scrollPosition = 0;
private final static String SCROLL_POSITION = "ScrollPos";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_breed_list);
setUpImageLoader();
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitle(getTitle());
if (findViewById(R.id.breed_detail_container) != null) {
mTwoPane = true;
}
DogContentFragment.getInstance(getSupportFragmentManager());
if (savedInstanceState != null) {
scrollPosition = savedInstanceState.getInt(SCROLL_POSITION);
}
RecyclerView recyclerView = findViewById(R.id.breed_list);
assert recyclerView != null;
setupRecyclerView(recyclerView);
}
@Override
public boolean onCreateOptionsMenu (Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
/*
* Listen for option item selections so that we receive a notification
* when the user requests a refresh by selecting the refresh action bar item.
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.refresh){
updateBreeds();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(SCROLL_POSITION, scrollPosition);
}
@Override
public void updateBreeds() {
if (adapter != null) {
adapter.notifyDataSetChanged();
}
}
@Override
public void updateDogItem_URL(int position) {
if (adapter != null) {
adapter.notifyItemChanged(position, DogContentFragment.ITEMS.get(position).url);
}
}
private void setUpImageLoader() {
if (!ImageLoader.getInstance().isInited()) {
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheSize(25000000)
.build();
ImageLoader.getInstance().init(config);
}
}
private void setupRecyclerView(@NonNull RecyclerView recyclerView) {
this.adapter = new SimpleItemRecyclerViewAdapter(this, DogContentFragment.ITEMS, mTwoPane);
recyclerView.setAdapter(adapter);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
scrollPosition =
((LinearLayoutManager) recyclerView.getLayoutManager()).
findFirstCompletelyVisibleItemPosition();
}
super.onScrollStateChanged(recyclerView, newState);
}
});
recyclerView.getLayoutManager().scrollToPosition(scrollPosition);
}
public static class SimpleItemRecyclerViewAdapter
extends RecyclerView.Adapter<SimpleItemRecyclerViewAdapter.ViewHolder> {
private final AppCompatActivity mParentActivity;
private final List<DogContentFragment.DogItem> mValues;
private final boolean mTwoPane;
private final View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
DogContentFragment.DogItem item = (DogContentFragment.DogItem) view.getTag();
if (mTwoPane) {
Bundle arguments = new Bundle();
arguments.putString(BreedDetailFragment.ARG_ITEM_ID, item.id);
BreedDetailFragment fragment = new BreedDetailFragment();
fragment.setArguments(arguments);
mParentActivity.getSupportFragmentManager().beginTransaction()
.replace(R.id.breed_detail_container, fragment, BreedDetailFragment.BREED_DETAIL_FRAGMENT)
.commit();
} else {
Context context = view.getContext();
Intent intent = new Intent(context, BreedDetailActivity.class);
intent.putExtra(BreedDetailFragment.ARG_ITEM_ID, item.id);
context.startActivity(intent);
}
}
};
SimpleItemRecyclerViewAdapter(AppCompatActivity parent,
List<DogContentFragment.DogItem> items,
boolean twoPane) {
mValues = items;
mParentActivity = parent;
mTwoPane = twoPane;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.breed_list_content, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.mIdView.setText(mValues.get(position).title);
String url = mValues.get(position).url;
updateThumbnail(holder, url);
holder.itemView.setTag(mValues.get(position));
holder.itemView.setOnClickListener(mOnClickListener);
}
private void updateThumbnail(ViewHolder holder, String url) {
if (url != null) {
ImageLoader imageLoader = ImageLoader.getInstance();
List<Bitmap> bitmaps = MemoryCacheUtils.findCachedBitmapsForImageUri(url, imageLoader.getMemoryCache());
Bitmap loadedImage = !bitmaps.isEmpty() ? bitmaps.get(0) : null;
if (loadedImage != null) {
holder.mContentView.setImageBitmap(loadedImage);
} else {
DisplayImageOptions thumbOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
imageLoader.displayImage(
url,
new ImageViewAware(holder.mContentView, false),
thumbOptions);
}
}
}
@Override
public void onBindViewHolder(ViewHolder holder, int position, List<Object> payloads) {
if (payloads.isEmpty()) {
super.onBindViewHolder(holder, position, payloads);
} else {
Object payload = payloads.get(0);
if (payload instanceof String) {
updateThumbnail(holder, (String) payload);
}
}
}
@Override
public int getItemCount() {
return mValues.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
final TextView mIdView;
final ImageView mContentView;
ViewHolder(View view) {
super(view);
mIdView = view.findViewById(R.id.item_name);
mContentView = view.findViewById(R.id.item_thumb);
}
}
}
}
公共类BreedListActivity扩展了AppCompatActivity实现
下载回调{
私有布尔值窗格;
专用SimpleItemRecycleServiceAdapter适配器;
私有位置=0;
私有最终静态字符串SCROLL\u POSITION=“ScrollPos”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u-bride\u-list);
setUpImageLoader();
Toolbar Toolbar=findviewbyd(R.id.Toolbar);
设置支持操作栏(工具栏);
setTitle(getTitle());
if(findViewById(R.id.breed\u detail\u container)!=null){
mTwoPane=true;
}
getInstance(getSupportFragmentManager());
如果(savedInstanceState!=null){
scrollPosition=savedInstanceState.getInt(滚动位置);
}
RecyclerView RecyclerView=findViewById(R.id.breed_列表);
断言回收视图!=null;
设置回收视图(回收视图);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。主菜单,菜单);
返回super.onCreateOptions菜单(菜单);
}
/*
*侦听选项项选择,以便我们收到通知
*当用户通过选择刷新操作栏项请求刷新时。
*/
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
if(item.getItemId()==R.id.refresh){
updateReeds();
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
SaveInstanceState上受保护的无效(束超出状态){
super.onSaveInstanceState(超出状态);
outState.putInt(滚动位置,滚动位置);
}
@凌驾
公共void updateReeds(){
if(适配器!=null){
adapter.notifyDataSetChanged();
}
}
@凌驾
public void updatedGitem\u URL(int位置){
if(适配器!=null){
notifyItemChanged(位置,DogContentFragment.ITEMS.get(位置).url);
}
}
私有void setUpImageLoader(){
如果(!ImageLoader.getInstance().isInited()){
ImageLoaderConfiguration配置=新建ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheSize(25000000)
.build();
ImageLoader.getInstance().init(配置);
}
}
私有void setupRecyclerView(@NonNull RecyclerView RecyclerView){
this.adapter=新的SimpleItemRecycleServiceAdapter(this,DogContentFragment.ITEMS,mTwoPane);
recyclerView.setAdapter(适配器);
recyclerView.addOnScrollListener(新的recyclerView.OnScrollListener(){
@凌驾
CrollStateChanged上的公共无效(RecyclerView RecyclerView,int newState){
if(newState==RecyclerView.SCROLL\u STATE\u IDLE){
滚动位置=
((LinearLayoutManager)recyclerView.getLayoutManager()。
findFirstCompletelyVisibleItemPosition();
}
super.onScrollStateChanged(recyclerView、newState);
}
});
recyclerView.getLayoutManager().scrollToPosition(scrollPosition);
}
公共静态类SimpleItemRecycleServiceAdapter
扩展RecyclerView.Adapter{
私人最终AppCompartActivity;
私人最终清单价值;
私有最终布尔值窗格;
private final View.OnClickListener mOnClickListener=new View.OnClickListener(){
@凌驾
公共void onClick(视图){
DogContentFragment.DogItem项=(DogContentFragment.DogItem)视图.getTag();
如果(mTwoPane){
Bundle参数=新Bundle();
arguments.putString(BreedDetailFragment.ARG_ITEM_ID,ITEM.ID);
BreedDetailFragment=新的BreedDetailFragment();
fragment.setArguments(参数);
mParentActivity.getSupportFragmentManager().beginTransaction()
.替换(R.id.品种详细信息\容器、碎片、品种详细信息\碎片)
.commit();
}否则{
Context=view.getContext();
意向意向=新意向(上下文,BreedDetailActivity.class);
intent.putExtra(BreedDetailFragment.ARG_ITEM_ID,ITEM.ID);
背景。开始触觉(意图);
}
}
};
SimpleItemRecycleServiceAdapter(AppCompative父级,
清单项目,
布尔值(双窗格){
M值=项目;
mParentActivity=父母;
mTwoPane=twoPane;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View=LayoutInflater.from(parent.getContext())
.充气(R.layout.breed\u list\u内容,父项,false);
返回新的ViewHolder(视图);
}
@凌驾
公共无效onBindViewHolder(最终ViewHolder,内部位置){
holder.mIdView.setText(mValues.get(position.title));
字符串url=mValues.get(position).url;
更新缩略图(持有者,url);
holder.itemView.setTag(mValues.get(position));
holder.itemView.setOnClickListener(mOnClickListener);
}
私有void updateThumbnail(视图持有者,字符串url){
如果(url!=null){
ImageLoader ImageLoader=ImageLoader.getInstance();
列表位图=MemoryCacheLS.FindCachedBitMapsFrimageUri(url,imageLoader.getMemoryCache());
位图LoadeImage=!bitmaps.isEmpty()?bitmaps.get(0):null;
如果(LoadeImage!=null){