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