#android #webview #reload
#Android #webview #перезагрузка
Вопрос:
У меня есть webView
с некоторым контентом из assets/1.html и я хочу создать button
(Следующая кнопка), чтобы изменить содержимое моего webView
assets/2.html и так далее.
как это сделать?
PS Я сделал это с Intent
помощью и воссоздал свой Activity
, но я думаю, что это не очень хорошее решение, я хочу ПРОСТО webView
перезагрузить не все Activity
🙂
это моя функция NextStory ():
public void nextStory(View view) {
int iExtra = Integer.parseInt(extra) 1;
if(iExtra<=10) {
String sExtra = Integer.toString(iExtra);
webView.loadUrl("file:///android_asset/" sExtra ".htm");
} else {
inflater = getLayoutInflater();
layout = inflater.inflate(R.layout.toast,
(ViewGroup) findViewById(R.id.toast_root));
text = (TextView) layout.findViewById(R.id.text);
text.setText("لقد وصلت لنهاية الكتاب!");
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(layout);
toast.show();
}
}
это моя функция onCreate () :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book);
textView = (TextView)findViewById(R.id.textView3);
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/arabicfont.otf");
textView.setTypeface(face);
webView = (WebView)this.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
intent = getIntent();
//this intent tag is for start reading position
extra = intent.getExtras().getString("EXTRA");
//this colorId is selected from previous Activity to change color acording to user's needs
colorId = intent.getIntExtra("COLOR_EXTRA", colorId);
Linear1 = (LinearLayout)findViewById(R.id.Linear1);
Relative1 = (RelativeLayout)findViewById(R.id.Relative1);
Linear1.setBackgroundResource(colorId);
Relative1.setBackgroundResource(colorId);
if(extra.equals("0")) {
webView.loadUrl("file:///android_asset/1.htm");
textView.setText(textView.getText().toString() " > توطئة");
} else if(extra.equals("1")) {
webView.loadUrl("file:///android_asset/2.htm");
textView.setText(textView.getText().toString() " > الكآبة الخرساء");
} else if(extra.equals("2")) {
webView.loadUrl("file:///android_asset/3.htm");
textView.setText(textView.getText().toString() " > يد القضاء");
} else if(extra.equals("3")) {
webView.loadUrl("file:///android_asset/4.htm");
textView.setText(textView.getText().toString() " > في باب الهيكل");
} else if(extra.equals("4")) {
webView.loadUrl("file:///android_asset/5.htm");
textView.setText(textView.getText().toString() " > الشعلة البيضاء");
} else if(extra.equals("5")) {
webView.loadUrl("file:///android_asset/6.htm");
textView.setText(textView.getText().toString() " > العاصفة");
} else if(extra.equals("6")) {
webView.loadUrl("file:///android_asset/7.htm");
textView.setText(textView.getText().toString() " > بحيرة النار");
} else if(extra.equals("7")) {
webView.loadUrl("file:///android_asset/8.htm");
textView.setText(textView.getText().toString() " > أمام عرش الموت");
} else if(extra.equals("8")) {
webView.loadUrl("file:///android_asset/9.htm");
textView.setText(textView.getText().toString() " > عشتروت والمسيح");
} else if(extra.equals("9")) {
webView.loadUrl("file:///android_asset/10.htm");
textView.setText(textView.getText().toString() " > التضحية");
} else if(extra.equals("10")) {
webView.loadUrl("file:///android_asset/11.htm");
textView.setText(textView.getText().toString() " > المنقذ");
}
}
Комментарии:
1. просто загрузите или установите второй HTML-файл в тот же webview, и он будет работать
2. вы можете добавить следующую кнопку в свой файл html1 и перейти к html2, используя функциональность htlm
Ответ №1:
Создайте кнопки Next и Previous в своей деятельности и just change the url of webview on button click.
Комментарии:
1. если вы пытались это сделать, опубликуйте свой код в своем вопросе
2. в противном случае очистите кэш этого webview. и загрузить снова
Ответ №2:
Объявить поверх вашего Activity
:
private int currentWebPageIndex;
Затем, когда вы нажимаете next / prev, вы добавляете / удаляете значение из индекса, например
currentWebPageIndex /currentWebPageIndex--
Итак, у вас может быть такой метод, как
private void pressedButton(boolean next){
if(next){
currentWebPageIndex ;
} else {
currentWebPageIndex--;
}
// load url depending on currentWebPageIndex
}
Комментарии:
1. моя проблема в // load url в зависимости от currentWebPageIndex мне не повезло с воображением; моя проблема техническая..
2. Но вам удалось загрузить ulr один раз? Итак, вы знаете, как это сделать.
3. Например, если currentWebpageIndex == 0, загрузите url1, если == 1, загрузите url2 и так далее для всех типов страниц, которые вы хотите загрузить. чувствуешь меня?