【问题标题】:same webview for different activities不同活动的相同网页视图
【发布时间】:2015-02-28 07:42:16
【问题描述】:

我在主要活动中有许多按钮,每个按钮链接到另一个包含列表视图的活动,列表视图中的每个项目都链接资产文件夹中的一个 html 文件。 在我的代码中,我为每个活动使用一个 webview 活动。 我如何为所有活动使用一个相同的 webview 活动。 我有八种不同的活动,带有不同的 html 文件。 我尝试为其他人使用一个 webview,结果总是一个 html 用于所有地址。

我的一项活动:

public class Dia_Page extends ListActivity {
public ListView lv;
public String number_of_keys;
public String[] values = new String[] {"dia 1",
        "dia 2","dia 3"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dia__page);

    setListAdapter(new MyAdapter(this,android.R.layout.simple_list_item_1,R.id.textView1,values));


    lv = getListView();
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, final View view,
            int position, long id) {                        
            Intent myIntent = new Intent(Dia_Page.this,Dia_sec.class);
            myIntent.putExtra("key",position);
            startActivity(myIntent);    
        }

    });
}

我的网络浏览活动:

web2.setWebViewClient(new myWebClient());
    web2.getSettings().setJavaScriptEnabled(true);
    int pos = getIntent().getIntExtra("key", 0);
    if (pos == 0) {
        web2.loadUrl("file:///android_asset/dia/diaone.html");
    } else if (pos == 1) {
        web2.loadUrl("file:///android_asset/dia/diatwo.html");
    } else if (pos == 2) {
        web2.loadUrl("file:///android_asset/dia/diathree.html");
    }

我如何使用相同的 webview 来显示不同活动中的所有活动 html。

【问题讨论】:

    标签: android html listview webview assets


    【解决方案1】:

    我将这个问题的答案发布给那些有我问题的朋友。 在包含列表视图的每个活动中,我都输入了以下代码:

    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
            @Override
            public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {                        
                Intent intent = new Intent(getApplicationContext(), Dia_sec.class);
                switch(position){   
                case 0 :
                    intent.setData(Uri.parse("file:///android_asset/can/canone.html"));
                    break;
                case 1 :
                    intent.setData(Uri.parse("file:///android_asset/can/cantwo.html"));
                    break;
                case 2 :
                    intent.setData(Uri.parse("file:///android_asset/can/canthree.html"));
                    break;
                // etc
                }
                startActivity(intent);
    

    在我的网页视图“dia_sec”中添加以下代码:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dia_sec);
        web2.loadUrl(getIntent().getDataString());
    

    我有大约 8 个不同的活动,它们包含自己的列表视图和不同的 html 文件。 现在我将代码放入活动中并将它们链接到我的网页视图页面。 问题解决了,现在我有一个 webview,我用它来显示来自不同源和不同列表视图的所有 html 文件。 非常感谢大家尝试以这种方式帮助我

    【讨论】:

      【解决方案2】:

      尝试像这样更改 webview 活动中的代码。 `

      String pos="";
      in = getIntent();
      
      web2.setWebViewClient(new myWebClient());
      web2.getSettings().setJavaScriptEnabled(true);
      
      pos= in.getStringExtra("key");
      
      if (pos.equals("0")) {
               web2.loadUrl("file:///android_asset/dia/diaone.html");
      } else if (pos.equals("1")) {
               web2.loadUrl("file:///android_asset/dia/diatwo.html");
      } else if (pos.equals("2")) {
               web2.loadUrl("file:///android_asset/dia/diathree.html");
      }`
      

      【讨论】:

      • 在更改代码后,我使用 .getIntExtra("key") 收到此错误:Intent 类型中的方法 getIntExtra(String, int) 不适用于参数 (String)
      • 然后将 pos 获取到一个字符串并在 if 条件下检查它。
      • 感谢您的帮助;我是android开发中的新手。当在=getIntent()中输入代码时; eclipse 错误我并提醒我创建局部变量...“我在 --in-- 上有错误”
      • 不客气,对延误表示歉意。在Intent in;声明,你会得到结果。
      猜你喜欢
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多