Java 按钮在第一个和最后一个索引中不起作用?

Java 按钮在第一个和最后一个索引中不起作用?,java,android,Java,Android,我正在开发一个应用程序,其中有两个导航按钮,即“上一个”和“下一个”,分别在点击加载故事中。当我轻轻点击这些按钮时,它们工作正常。当我连续点击下一个按钮到最后一个索引时,没有任何中断,上一个按钮不工作,或者类似地,当我开始点击上一个按钮到第一个索引时,我无法前进 记住,这只发生在极端情况下,onClick不被调用,不知道为什么 我的代码如下,请帮助我。提前谢谢 这是onClick的代码,它在除极端情况外的所有情况下都能正常工作,当按钮没有轻轻点击时 public void onClick(Vi

我正在开发一个应用程序,其中有两个导航按钮,即“上一个”和“下一个”,分别在点击加载故事中。当我轻轻点击这些按钮时,它们工作正常。当我连续点击下一个按钮到最后一个索引时,没有任何中断,上一个按钮不工作,或者类似地,当我开始点击上一个按钮到第一个索引时,我无法前进

记住,这只发生在极端情况下,onClick不被调用,不知道为什么

我的代码如下,请帮助我。提前谢谢

这是onClick的代码,它在除极端情况外的所有情况下都能正常工作,当按钮没有轻轻点击时

 public void onClick(View v) {

    if (visible == true) {
        Log.e("visible", "true");
        return;
    }
    visible = true;

    try {
        Log.e("Now", "On Click");

        pDialog = new ProgressDialog(StoriesListController.this);
        pDialog.setIndeterminate(true);
        pDialog.setIcon(R.drawable.icon_small);
        pDialog.setCancelable(true);
        if (isFavoriteList == true) {
            pDialog.setMessage("Loading favorites...");
        } else {
            pDialog.setMessage("Loading data...");
        }
        pDialog.setTitle("Please wait");
        pDialog.setOnCancelListener(new OnCancelListener() {

            public void onCancel(DialogInterface arg0) {
                if (cancelableHeavyWorker != null) {
                    cancelableHeavyWorker.setHandler(null);
                }
                finish();
            }
        });
        pDialog.show();
        if (v == next) {
            if (ind < items.size() - 1) {
                ind++;
                loadAndShowNextActivity();
            }
        } else if (v == previous) {
            if (ind > 0) {
                ind--;
                loadAndShowNextActivity();
            }
        }
        // realeaseMemoryIfneededofStory(ind);
    } catch (Exception e) {

        Log.e("Error", "--.OnClink Message" + e.toString());
        e.printStackTrace();
    }
}
public void onClick(视图v){
如果(可见==真){
Log.e(“可见”、“真实”);
回来
}
可见=真实;
试一试{
Log.e(“现在”,“点击”);
pDialog=newprogressdialog(StoriesListController.this);
pDialog.setUndeterminate(真);
pDialog.setIcon(R.drawable.icon_small);
pDialog.setCancelable(真);
if(isFavoriteList==true){
setMessage(“加载收藏夹…”);
}否则{
setMessage(“正在加载数据…”);
}
pDialog.setTitle(“请稍候”);
pDialog.setOnCancelListener(新的OnCancelListener(){
public void onCancel(对话框接口arg0){
if(cancelableHeavyWorker!=null){
cancelableHeavyWorker.setHandler(null);
}
完成();
}
});
pDialog.show();
如果(v==下一个){
如果(ind0){
ind--;
loadandshownextractivity();
}
}
//RealeaseMemoryifneeddofstory(ind);
}捕获(例外e){
Log.e(“错误”,“--.OnClink消息”+e.toString());
e、 printStackTrace();
}
}
此外,布尔变量“visible”在回调函数中被设置为false

回拨功能的代码如下:

private void fetchTopStoryDetailCallback(Object resultVector) {

    System.out.println("fetchTopStoryDetailCallback");
    try {
        Vector<?> v = (Vector<?>) resultVector;
        boolean completedOrFailed = ((Boolean) v.elementAt(0)).booleanValue();
        if (completedOrFailed == true) {
            boolean slideshow = ((Boolean) v.elementAt(1)).booleanValue();
            Object result = v.elementAt(2);
            String res[] = (String[]) result;

            if (slideshow) {
                if (Utils.topStorySlidesArrayList != null && Utils.topStorySlidesArrayList.size() > 0) {
                    Intent articleActivityIntent = new Intent(this, SlideShowActivity.class);
                    articleActivityIntent.putExtra("storyData", (String[]) result);
                    articleActivityIntent.putExtra("back", back);
                    articleActivityIntent.putStringArrayListExtra("sid", slideids);
                    // articleActivityIntent.putExtra("contentType", )
                    articleActivityIntent.putExtra("addkey", ADDS_KEY);
                    showActivityInContoller(articleActivityIntent);
                    hidePrgressgingDailog();

                } else {
                    hidePrgressgingDailog();
                    this.closeActivity = true;
                    showMessage("Error", "This story encounter an error while opening. Check your Internet Connection and try later");
                }

            } else {

                if (res[3] != null && (!(res[3].equalsIgnoreCase("null")) && (!res[3].equals("")))) {
                    Intent slideshowActivtyIntent = new Intent(this, ArticleActivity.class);
                    slideshowActivtyIntent.putExtra("storyData", (String[]) result);
                    slideshowActivtyIntent.putExtra("back", back);
                    slideshowActivtyIntent.putExtra("addkey", ADDS_KEY);
                    showActivityInContoller(slideshowActivtyIntent);
                    hidePrgressgingDailog();
                } else {
                    hidePrgressgingDailog();
                    this.closeActivity = true;
                    showMessage("Error", "This story encounter an error while opening. Check your Internet Connection and try later");
                }
            }

        } else {
            showMessage("Error", "This story encounter an error while opening. Check your Internet Connection and try later");
            hidePrgressgingDailog();
        }

    } catch (Exception e) {
        Log.e("StoriesController", "Message = " + e.toString());
        e.printStackTrace();
    }
    finally {visible = false; }
}
private void fetchTopStoryDetailCallback(对象resultVector){
System.out.println(“fetchTopStoryDetailCallback”);
试一试{
向量v=(向量)结果向量;
boolean completedOrFailed=((boolean)v.elementAt(0)).booleanValue();
if(completedOrFailed==true){
布尔幻灯片=((布尔)v.elementAt(1)).booleanValue();
对象结果=v.elementAt(2);
字符串res[]=(字符串[])结果;
如果(幻灯片){
if(Utils.toptoryslidesarraylist!=null&&Utils.toptoryslidesarraylist.size()>0){
Intent articleActivityIntent=新的意图(这是SlideShowActivity.class);
articleActivityIntent.putExtra(“storyData”,(字符串[])结果);
articleActivityIntent.putExtra(“背面”,背面);
articleActivityIntent.putStringArrayListExtra(“sid”,slideds);
//articleActivityIntent.putExtra(“contentType”,以下简称“内容类型”)
articleActivityIntent.putExtra(“添加键”,添加键);
承包商的展示活动(条款活动意图);
HidePregressgingDailog();
}否则{
HidePregressgingDailog();
this.closeActivity=true;
showMessage(“错误”,“此报道在打开时遇到错误。请检查您的Internet连接,稍后再试”);
}
}否则{
如果(res[3]!=null&(!(res[3].equalsIgnoreCase(“null”)&&(!res[3].equals(“”))){
Intent slideshowActivtyIntent=新的意图(这个,ArticleActivity.class);
SlideshowActivityIntent.putExtra(“故事数据”,(字符串[])结果);
幻灯片显示ActivityIntent.putExtra(“后退”,后退);
SlideshowActivityIntent.putExtra(“添加键”,添加键);
收纳器中的显示活动(幻灯片显示活动内容);
HidePregressgingDailog();
}否则{
HidePregressgingDailog();
this.closeActivity=true;
showMessage(“错误”,“此报道在打开时遇到错误。请检查您的Internet连接,稍后再试”);
}
}
}否则{
showMessage(“错误”,“此报道在打开时遇到错误。请检查您的Internet连接,稍后再试”);
HidePregressgingDailog();
}
}捕获(例外e){
Log.e(“StoriesController”,“Message=“+e.toString());
e、 printStackTrace();
}
最后{visible=false;}
}
这就是按钮的可视性设置方式

私有void adjustButtonsVisibility(){

试试看{
如果(items.size()==1){
next.setEnabled(false);
setImageResource(R.drawable.navigator\u next\u disable);
上一个.setEnabled(false);
previous.setImageResource(R.drawable.navigator\u previous\u disable);
//HidePregressgingDailog();
回来
}
如果(ind==0){
上一个.setEnabled(false);
next.setEnabled(true);
previous.setImageResource(R.drawable.navigator\u previous\u disable);
setImageResource(R.drawable.story\u next\u箭头);
HidePregressgingDailog();
}else if(ind>0&&ind    try {
        if (items.size() == 1) {
            next.setEnabled(false);
            next.setImageResource(R.drawable.navigator_next_disable);
            previous.setEnabled(false);
               previous.setImageResource(R.drawable.navigator_previous_disable);
            //hidePrgressgingDailog();
            return;
        }
        if (ind == 0) {
            previous.setEnabled(false);
            next.setEnabled(true);
            previous.setImageResource(R.drawable.navigator_previous_disable);
            next.setImageResource(R.drawable.story_next_arrow);
            hidePrgressgingDailog();

        } else if (ind > 0 && ind < items.size() - 1) {
            previous.setEnabled(true);
            next.setEnabled(true);
            previous.setImageResource(R.drawable.story_previous_arrow);
            next.setImageResource(R.drawable.story_next_arrow);
        }
        if (ind == items.size() - 1) {
            previous.setEnabled(true);
            next.setEnabled(false);
            previous.setImageResource(R.drawable.story_previous_arrow);
            next.setImageResource(R.drawable.navigator_next_disable);
            hidePrgressgingDailog();
        }
    } catch (Exception e) {
        Log.e("Error", "--,adjustButtonsVisibility Message = " + e);
        e.printStackTrace();
    }
}
    if (ind == 0) {
        previous.setEnabled(false);
        previous.setImageResource(R.drawable.navigator_previous_disable);
        next.setImageResource(R.drawable.story_next_arrow);
        hidePrgressgingDailog();
    }
    else if (ind > 0 && ind < items.size() - 1) {
        previous.setEnabled(true);
        next.setEnabled(true);
        previous.setImageResource(R.drawable.story_previous_arrow);
        next.setImageResource(R.drawable.story_next_arrow);
    }
    else if (ind == items.size() - 1) {
        previous.setEnabled(true);
        next.setEnabled(false);
        previous.setImageResource(R.drawable.story_previous_arrow);
        next.setImageResource(R.drawable.navigator_next_disable);
        hidePrgressgingDailog();
    }