Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 刷新按钮不工作_Java_Android - Fatal编程技术网

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){