0

1つのTextViewを持つListViewがあります。リストビューは、文字列配列と配列アダプター(ListActivityとlist_itemレイアウトを拡張するListクラス内)から入力されます。これでクリックリスナーが設定され、switch positionステートメントを使用して、アセットフォルダーのローカルhtmlファイルがuri解析メソッドによってリスト行にリンクされます。リスト行をクリックすると、htmlページが(TopicDisplayクラスとdisplay_itemレイアウト)で設定されたWebビューに表示されるように設定されます。以下は私の

問題:ユーザーがリストビューの行をクリックすると、その行から最後の行までのhtmlドキュメントが、[最後のドキュメント]が最初に表示されます。androidデバイスの戻るボタンを使用して、クリックされた行までロードされた各htmlドキュメントをナビゲートできます。クリックした行のHTMLドキュメントのみを表示するにはどうすればよいですか?

リストクラスのコード

package com.abcdef.list;



//import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
//import android.widget.AdapterView;
//import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
//import android.widget.TextView;

public class List extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // storing string resources into Array
    String[] adobe_products = getResources().getStringArray(R.array.adobe_products);

    // Binding resources Array to ListAdapter
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, adobe_products));
}   
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    change(position);
}
void change(int position){
 //   Uri uri = null;
    switch(position){   

case 0 :{
    Intent i0 = new Intent(getApplicationContext(), TopicDisplay.class);
  Uri  uri0=Uri.parse("file:///android_asset/File0.html");
    i0.setData(uri0);
    startActivity(i0);}
case 1 :{
    Intent i1 = new Intent(getApplicationContext(), TopicDisplay.class);
  Uri  uri1=Uri.parse("file:///android_asset/Topic1.html");
    i1.setData(uri1);
    startActivity(i1);}
case 2 :{
    Intent i2 = new Intent(getApplicationContext(), TopicDisplay.class);
    Uri   uri2=Uri.parse("file:///android_asset/Topic2.html");
    i2.setData(uri2);
    startActivity(i2);}

case 3:{
    Intent i3 = new Intent(getApplicationContext(), TopicDisplay.class);
    Uri  uri3=Uri.parse("file:///android_asset/Topic3.html");
    i3.setData(uri3);
    startActivity(i3);}
  case 4:{
      Intent i4 = new Intent(getApplicationContext(), TopicDisplay.class);
      Uri    uri4=Uri.parse("file:///android_asset/Topic4.html");
    i4.setData(uri4);
    startActivity(i4);}
 case 5:{
     Intent i5 = new Intent(getApplicationContext(), TopicDisplay.class);
     Uri  uri5=Uri.parse("file:///android_asset/Topic5.html");
    i5.setData(uri5);
    startActivity(i5);}
 case 6:{
     Intent i6 = new Intent(getApplicationContext(), TopicDisplay.class);
     Uri  uri6=Uri.parse("file:///android_asset/Topic6.html");
     i6.setData(uri6);
     startActivity(i6);}
  case 7:{
      Intent i7 = new Intent(getApplicationContext(), TopicDisplay.class);
      Uri  uri7=Uri.parse("file:///android_asset/Topic7.html");
     i7.setData(uri7);
     startActivity(i7);}
  case 8:{
      Intent i8 = new Intent(getApplicationContext(), TopicDisplay.class);
      Uri  uri8=Uri.parse("file:///android_asset/Topic8.html");
     i8.setData(uri8);
     startActivity(i8);}  
   } } }

これが私のTopicDisplayクラスコードです

package com.abcdef.list;

import android.app.Activity;
//import android.app.Application;
//import android.content.Intent;
import android.os.Bundle;
import android.webkit.*;

public class TopicDisplay extends Activity{



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.topic_display);


    WebView tabViewing = (WebView) findViewById(R.id.webView1);
    tabViewing.loadUrl(getIntent().getDataString());

}
}
4

1 に答える 1

0

ユーザーがリストビューの行をクリックすると、その行から最後の行までのhtmlドキュメントが、[最後のドキュメント]が最初に表示されます。

break;switchステートメントの各ケースに追加するのを忘れただけです。

また、各caseステートメントから共通コードを削除する必要があります。次のことを試してください。

Intent intent = new Intent(getApplicationContext(), TopicDisplay.class);
switch(position){   
case 0 :
    intent.setData(Uri.parse("file:///android_asset/File0.html"));
    break;
case 1 :
    intent.setData(Uri.parse("file:///android_asset/Topic1.html"));
    break;
case 2 :
    intent.setData(Uri.parse("file:///android_asset/Topic2.html"));
    break;
// etc
}
startActivity(intent);
于 2013-01-13T04:32:31.607 に答える