我的代码中有一个网站数组。
我添加了2个ID为button1
和button2
的按钮。
它们将用于在Array中的站点之间导航。
private WebView webv;
private SeekBar seitenSwitcher;
private String[] websites = {
"000.htm",
"001.htm",
"002.htm",
"003.htm",
"004.htm",
"005.htm",
"006.htm",
"007.htm",
"008.htm",
"009.htm",
"010.htm",
"011.htm",
"012.htm",
"013.htm",
"014.htm",
"015.htm",
"016.htm",
};
public int pRog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webv = (WebView)findViewById(R.id.Viewing);
webv.setWebViewClient(new WebViewClient());
webv.getSettings().setJavaScriptEnabled(true);
webv.loadUrl(websites[0]);
pRog = 0;
Button button1= (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webv.loadUrl(websites[pRog--]);
pRog = pRog--; /** I can also leave this out and it works **/
}
});
Button button2= (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webv.loadUrl(websites[pRog++]);
}
});
我的想法是int pRog
用于获取当前显示的数组网站中字符串的值。
然后用" pRog = pRog--
"或" pRog = pRog++
"更改值,以适合数组中当前显示的字符串。
它正在发挥作用,但并非如此。我可以前进和后退,但是另一种方式中第一次触摸按钮不起作用。
示例:
我从000.htm开始,正如您在代码中看到的那样。
第一次按下按钮2。 (没有任何反应)
第二次按下按钮2。 (webView加载001.htm)
第三次按下按钮2。 (webView加载002.htm)
第四次按下按钮2。 (webView load 003.htm)
第一次按下按钮1。 (webView加载004.htm!而不是002.htm)
第二次按下按钮1。 (webView加载003.htm!现在它正在工作。)
按下按钮2。 (web View加载002.htm!向下而不是向上)
之后它也会再次运作。)
如果我遗漏pRog = pRog++ or --
,它也有效。
答案 0 :(得分:0)
你应该做
webv.loadUrl(websites[++pRog])
不是webv.loadUrl(websites[pRog++])
与 -
的其他按钮相同