我收到Index Out of Bound异常的错误,Toast消息不会出现

时间:2017-02-23 18:48:43

标签: android android-studio textview

这是我将代码值设置为-1的代码。并且我只为下一个按钮计数< 10了。并且对于prev按钮计数> = 0。而且声明(Toast消息)也不起作用。请帮我解决这个错误。

public class story extends AppCompatActivity {
Button next;
Button prev;
TextView t;
int count=-1;
int[] stories = {
        R.string.firststory,
        R.string.story2,
        R.string.story3,
        R.string.story4,
        R.string.story5,
        R.string.story6,
        R.string.story7,
        R.string.story8,
        R.string.story9,
        R.string.story10,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.story);

    next = (Button) this.findViewById(R.id.next);
    prev = (Button) this.findViewById(R.id.prev);
    t = (TextView) this.findViewById(R.id.textView2);
    t.setText(Html.fromHtml(getString(stories[0])));
    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click
            count=count+1;
            try{
            if(count<10) {
                t.setText(Html.fromHtml(getString(stories[count])));
            }
                else{
                Toast toast=Toast.makeText(getApplicationContext(),"This is Last story",Toast.LENGTH_SHORT);
            }
            }
            catch(Exception e)
            {

            }
        }
    });
    prev.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Perform action on click
            count=count-1;
            try{
            if(count>=0)
            {
            t.setText(Html.fromHtml(getString(stories[count])));
            }
            else{
                Toast toast=Toast.makeText(getApplicationContext(),"This is first story",Toast.LENGTH_SHORT);
            }
            }
            catch(Exception e){

            }
        }
    });
}
}

2 个答案:

答案 0 :(得分:0)

首先,祝酒词:

要显示祝酒消息,您需要调用&#34; show()&#34;方法。创建吐司后尝试添加以下行:

toast.show();

其次,指数:

您可能正在使用大于9或小于0的值访问数组。您应该使用调试器(或者如果您对调试器不熟悉时插入日志消息)来检查&#34;的值。计数&#34;在您访问数组之前的变量。

答案 1 :(得分:0)

您省略了try块中发生的异常。请使用class User include ActiveModel::Model validates :password, length: { minimum: 8 }, allow_nil: true, on: :create, unless: :has_uid_and_provider? def has_uid_and_provider? uid.present? && provider.present? end end 打印,以便您可以知道确切的错误及其发生的行。

对于Toast,正如其他人所提到的,使用e.printStackTrace()来显示它。

show()

或直接

Toast toast = Toast.makeText(getApplicationContext(),"This is first story",Toast.LENGTH_SHORT);
toast.show();