添加搜索栏后,listview无法启动正确的html文件

时间:2013-12-10 02:56:59

标签: android listview webview

我一直致力于一个项目,其中我有一个主要活动,其中我有listview和一个搜索栏(编辑文本栏),我的listview的onitemclicklistener将行位置传递给具有webview和webview的活动将html页面打开到各自的位置。我也将listview项存储在arrays.xml中

我的问题从这里开始 - 我的Listview Works文件并在行单击时打开相应的活动(当我不使用搜索栏时只需滚动并单击行。)

但是当我使用搜索栏搜索项目(html页面)时,让它为“c”并点击它,列表视图不会打开正确的html页面!希望这很清楚  我在这里找到了一个解决方案After filter a listview,how can I obtain the position of the first listview? 但我不知道如何在我的代码中实现这一点。

这是我的主要活动

 package com.Sample.htmlOpener;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

public class MainActivity extends Activity {
private ListView list1;
private String array[] ;
EditText inputSearch; 
ArrayAdapter<String> adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    inputSearch = (EditText) findViewById(R.id.inputSearch); 
    list1 = (ListView) findViewById(R.id.ListView01);
    array = getResources().getStringArray(R.array.myArray);
    adapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, array);
    list1.setAdapter(adapter);
    inputSearch.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
        // When user changed the Text
        MainActivity.this.adapter.getFilter().filter(cs);   
    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
    int arg3) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub                          
    }
 });

  list1.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        Intent myIntent = new Intent(MainActivity.this,WebViewActivity.class);
        myIntent.putExtra("key",position);
        startActivity(myIntent);
    }
  });   
}
}

,这是我的网络视频活动

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class WebViewActivity extends Activity {
    WebView web;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        web = (WebView) findViewById(R.id.webView1);
        web.setWebViewClient(new myWebClient());
        web.getSettings().setJavaScriptEnabled(true);
        int pos = getIntent().getIntExtra("key",0);
        if(pos==0)
        {
            web.loadUrl("file:///android_asset/file.html");
        }
        else
        {
            web.loadUrl("file:///android_asset/file" + pos + ".html");
        }
      // similarly for 4 and 5 and so on.
    }

    public class myWebClient extends WebViewClient
    {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub

            view.loadUrl(url);
            return true;

        }
        @Override
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);

        }
    }
}

1 个答案:

答案 0 :(得分:0)

提供了逐步程序here。您可以按照本教程轻松了解custom listview adaptersearch functionality using SQLite Database

如果您想了解有关SQLite的更多信息,请关注this

希望你能解决问题,但必须学习:)