Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
操作栏上的android应用程序搜索未获得结果_Android_Android Actionbar_Searchview - Fatal编程技术网

操作栏上的android应用程序搜索未获得结果

操作栏上的android应用程序搜索未获得结果,android,android-actionbar,searchview,Android,Android Actionbar,Searchview,我正在为我的网站制作一个应用程序。我正在进行一项活动,即MainActivity。我不是一个android开发者,只是在学习。问题是,我已经在我的主要活动的操作栏上进行了搜索。searchview即将发布,我可以在其中键入单词。但当我按下提交按钮时,什么也没发生。我需要的结果是在相同的活动I。主要活动。搜索查询将加载网页搜索。我的菜单是R.menu.main,搜索的菜单项是R.id.action\u search 请告诉我我做错了什么。以下是我的Androidmanifest.xml代码 <

我正在为我的网站制作一个应用程序。我正在进行一项活动,即MainActivity。我不是一个android开发者,只是在学习。问题是,我已经在我的主要活动的操作栏上进行了搜索。searchview即将发布,我可以在其中键入单词。但当我按下提交按钮时,什么也没发生。我需要的结果是在相同的活动I。主要活动。搜索查询将加载网页搜索。我的菜单是R.menu.main,搜索的菜单项是R.id.action\u search 请告诉我我做错了什么。以下是我的Androidmanifest.xml代码

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
<uses-permission android:name="android.permission.CAMERA"/>
android:hardwareAccelerated="true"
<application android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="Bengalflora.in"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="Bengalflora.in"
        android:theme="@style/AppTheme.NoActionBar"
        android:launchMode="singleTop"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

        <meta-data android:name="android.app.default_searchable"
            android:value="com.mywebsite.mywebsite.MainActivity"
            android:resource="@xml/searchable" />
        <meta-data
            android:name="android.app.searchable"
            android:value="com.mywebsite.mywebsite.MainActivity"
            android:resource="@xml/searchable" />
    </activity>
    <activity android:name=".Splash">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".Aboutus"
        android:label="About us"
        android:parentActivityName=".MainActivity" >

        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
</application>

android:hardwareAccelerated=“true”

这是我的主要活动

 public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener{
    private static final int REQUEST_INTERNET = 200;
    private static final int TIME_INTERVAL = 1000; // # milliseconds, desired time passed between two back presses.
    private long mBackPressed;
    private ProgressBar mProgressBar;

    private static final String target_url="https://bengalflora.in";
    private static final String target_url_prefix="bengalflora.in";
    private Context mContext;
    private WebView mWebviewPop;
    private FrameLayout mContainer;
    WebView mwebView;

    String mypage_error = "file:///android_asset/error/index.html";

    private static final String TAG = MainActivity.class.getSimpleName();
    private String mCM;
    private ValueCallback<Uri> mUM;
    private ValueCallback<Uri[]> mUMA;
    private final static int FCR=1;

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent){
        super.onActivityResult(requestCode, resultCode, intent);
        if(Build.VERSION.SDK_INT >= 21){
            Uri[] results = null;
            //Check if response is positive
            if(resultCode== Activity.RESULT_OK){
                if(requestCode == FCR){
                    if(null == mUMA){
                        return;
                    }
                    if(intent == null){
                        //Capture Photo if no image available
                        if(mCM != null){
                            results = new Uri[]{Uri.parse(mCM)};
                        }
                    }else{
                        String dataString = intent.getDataString();
                        if(dataString != null){
                            results = new Uri[]{Uri.parse(dataString)};
                        }
                    }
                }
            }
            mUMA.onReceiveValue(results);
            mUMA = null;
        }else{
            if(requestCode == FCR){
                if(null == mUM) return;
                Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
                mUM.onReceiveValue(result);
                mUM = null;
            }
        }
    }
    @SuppressLint({"SetJavaScriptEnabled", "WrongViewCast"})

    @Override
    protected void onCreate(Bundle savedInstanceState)   {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int Permission_All = 1;
        String[] Permissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MEDIA_CONTENT_CONTROL, Manifest.permission.CAMERA, };
        if(!hasPermissions(this, Permissions)){
            ActivityCompat.requestPermissions(this, Permissions, Permission_All);
        }

        //
        mProgressBar = (ProgressBar) findViewById(R.id.pb);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
        mwebView = (WebView) findViewById(R.id.myWebView);
        assert mwebView != null;
        WebSettings webSettings = mwebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAllowFileAccess(true);


        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        CookieManager.getInstance().setAcceptThirdPartyCookies(mwebView, true);

        mwebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        mwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        mwebView.getSettings().setAppCacheEnabled(true);
        mwebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webSettings.setDomStorageEnabled(true);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSettings.setUseWideViewPort(true);
        webSettings.setSavePassword(true);
        webSettings.setSaveFormData(true);
        webSettings.setEnableSmoothTransition(true);
        mwebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

        mwebView.getSettings().setAllowFileAccess(true);
        if(Build.VERSION.SDK_INT >= 21){
            webSettings.setMixedContentMode(0);
            mwebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        }else if(Build.VERSION.SDK_INT >= 19){
            mwebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        }else if(Build.VERSION.SDK_INT >=11 && Build.VERSION.SDK_INT < 19){
            mwebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }
        mwebView.setWebViewClient(new Callback());
        mwebView.setWebViewClient(new CustomWebViewClient());

        mwebView.loadUrl("https://bengalflora.in/gallery/index.php");




        mwebView.setWebChromeClient(new WebChromeClient(){
            public void onProgressChanged(WebView view, int newProgress){
                // Update the progress bar with page loading progress
                mProgressBar.setProgress(newProgress);
                if(newProgress >= 90){
                    // Hide the progressbar
                    mProgressBar.setVisibility(View.GONE);
                }
            }

            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
                mwebView.loadUrl(mypage_error);
            }



            //For Android 3.0+
            public void openFileChooser(ValueCallback<Uri> uploadMsg){
                mUM = uploadMsg;
                Intent i = new Intent(Intent.ACTION_GET_CONTENT);
                i.addCategory(Intent.CATEGORY_OPENABLE);
                i.setType("image/*");
                MainActivity.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FCR);
            }
            // For Android 3.0+, above method not supported in some android 3+ versions, in such case we use this
            public void openFileChooser(ValueCallback uploadMsg, String acceptType){
                mUM = uploadMsg;
                Intent i = new Intent(Intent.ACTION_GET_CONTENT);
                i.addCategory(Intent.CATEGORY_OPENABLE);
                i.setType("image/*");
                MainActivity.this.startActivityForResult(
                        Intent.createChooser(i, "File Browser"),
                        FCR);
            }
            //For Android 4.1+
            public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
                mUM = uploadMsg;
                Intent i = new Intent(Intent.ACTION_GET_CONTENT);
                i.addCategory(Intent.CATEGORY_OPENABLE);
                i.setType("image/*");
                MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MainActivity.FCR);
            }
            //For Android 5.0+

            public boolean onShowFileChooser(
                    WebView webView, ValueCallback<Uri[]> filePathCallback,
                    WebChromeClient.FileChooserParams fileChooserParams) {
                if(mUMA != null){
                    mUMA.onReceiveValue(null);
                }
                mUMA = filePathCallback;
                Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                if(takePictureIntent.resolveActivity(MainActivity.this.getPackageManager()) != null){
                    File photoFile = null;
                    try{
                        photoFile = createImageFile();
                        takePictureIntent.putExtra("PhotoPath", mCM);
                    }catch(IOException ex){
                        Log.e(TAG, "Image file creation failed", ex);
                    }
                    if(photoFile != null){
                        mCM = "file:" + photoFile.getAbsolutePath();
                        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
                    }else{
                        takePictureIntent = null;
                    }
                }
                Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
                contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
                contentSelectionIntent.setType("image/*");
                Intent[] intentArray;
                if(takePictureIntent != null){
                    intentArray = new Intent[]{takePictureIntent};
                }else{
                    intentArray = new Intent[0];
                }

                Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
                chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
                chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");
                chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
                startActivityForResult(chooserIntent, FCR);
                return true;
            }
        });
    }

    //new code start
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        // Inflate the menu; this adds items to the action bar if it is present.


        //
        SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
        SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        Intent searchIntent = getIntent();
        String query = searchIntent.getStringExtra(SearchManager.QUERY);
        if(Intent.ACTION_SEARCH.equals(searchIntent.getAction())) {
            mwebView.loadUrl("http://google.co.in/?q="+query);
        }
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()){
            case R.id.action_upload:
                mwebView.loadUrl("https://xyz/uploadpage.php");
                return true;
            case R.id.action_reload:
                mwebView.reload();
                return true;

            case R.id.action_about:
                startActivity(new Intent(this, Aboutus.class));
                return true;



            case R.id.action_exit:
                finish();


        }


        return super.onOptionsItemSelected(item);
    }

    ///////////////multiple permission code
    public static boolean hasPermissions(Context context, String... permissions){

        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M && context!=null && permissions!=null){
            for(String permission: permissions){
                if(ActivityCompat.checkSelfPermission(context, permission)!=PackageManager.PERMISSION_GRANTED){
                    return  false;
                }
            }
        }
        return true;
    }
    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_local) {
            mwebView.loadUrl("http://xyz/index.php?/category/1&mobile=true");
        } else if (id == R.id.nav_spices) {
            mwebView.loadUrl("http://xyz?/category/84&mobile=true");
        } else if (id == R.id.nav_vherbarium) {
            mwebView.loadUrl("http://xyz/index.php?/category/36&mobile=true");
        } else if (id == R.id.nav_usersupload) {
            mwebView.loadUrl("http://xyz/index.php?/category/user&mobile=true");
        } else if (id == R.id.nav_recent) {
            mwebView.loadUrl("http://xyz/index.php?/recent_pics&mobile=true");

        } else if (id == R.id.nav_login) {
            mwebView.loadUrl("http://xyz/identification.php?mobile=true");
        } else if (id == R.id.nav_register) {
            mwebView.loadUrl("http://xyz/register.php?mobile=true");

        } else if (id == R.id.nav_contact) {
            mwebView.loadUrl("http://xyz/contact/&mobile=true");
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

    public class CustomWebViewClient extends WebViewClient {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon){
            // Do something on page loading started
            // Visible the progressbar
            mProgressBar.setVisibility(View.VISIBLE);
        }


        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
            mwebView.loadUrl(mypage_error);
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url) {
            if(url.contains("something")) return true;
            return false; //Default is to not override unless our condition is met.
        }
        public void onPageFinished(WebView webView, String url) {


            String webUrl = webView.getUrl();
            System.out.println(webUrl);
            if(url.startsWith("https://xyz/plugins/oAuth/auth.php?provider=Facebook&openid_identifier=&init_auth=1#_=_"))
            {
                String redirectUrl = "https://xyz/gallery/facloginapp.php";
                webView.loadUrl(redirectUrl);
                return;
            }
            super.onPageFinished(webView, url);
            mProgressBar.setVisibility(View.GONE);
        }
    }
    public class Callback extends WebViewClient {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
            mwebView.loadUrl(mypage_error);
        }
    }
    // Create an image file
    private File createImageFile() throws IOException{
        @SuppressLint("SimpleDateFormat") String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "img_"+timeStamp+"_";
        File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        return File.createTempFile(imageFileName,".jpg",storageDir);
    }
    @Override
    public boolean onKeyDown(int keyCode,  KeyEvent event){
        if(event.getAction() == KeyEvent.ACTION_DOWN){
            switch(keyCode){
                case KeyEvent.KEYCODE_BACK:

                    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
                    if (drawer.isDrawerOpen(GravityCompat.START)) {
                        drawer.closeDrawer(GravityCompat.START);
                    }

                    else{

                        if(mwebView.canGoBack()){
                            mwebView.goBack();
                        }
                        else if   (mBackPressed + TIME_INTERVAL > System.currentTimeMillis())
                        {
                            super.onBackPressed();

                        }
                        else { Toast.makeText(getBaseContext(), "Press back button once quickly to exit", Toast.LENGTH_SHORT).show(); }

                        mBackPressed = System.currentTimeMillis();





                    }
                    return true;
            }
        }
        return super.onKeyDown(keyCode, event);
    }



    @Override
    public void onConfigurationChanged(Configuration newConfig){
        super.onConfigurationChanged(newConfig);
    }}
public类MainActivity扩展了AppCompatActivity
实现NavigationView.OnNavigationItemSelectedListener{
私有静态最终int请求_互联网=200;
专用静态最终整型时间间隔=1000;//#毫秒,两次背压之间经过的所需时间。
私人长假;
私人ProgressBar mProgressBar;
私有静态最终字符串target_url=”https://bengalflora.in";
私有静态最终字符串target\u url\u prefix=“bengalflora.in”;
私有上下文;
私有网络视图mWebviewPop;
私有框架布局mContainer;
网络视图;
字符串mypage_错误=”file:///android_asset/error/index.html";
私有静态最终字符串标记=MainActivity.class.getSimpleName();
私有字符串mCM;
私人财产;
私人资产管理公司;
专用最终静态整数FCR=1;
@凌驾
ActivityResult上受保护的void(int-requestCode、int-resultCode、Intent-Intent){
super.onActivityResult(请求代码、结果代码、意图);
如果(Build.VERSION.SDK_INT>=21){
Uri[]results=null;
//检查响应是否为阳性
if(resultCode==Activity.RESULT\u确定){
if(requestCode==FCR){
if(null==mUMA){
返回;
}
if(intent==null){
//如果没有可用图像,请拍摄照片
如果(mCM!=null){
结果=新Uri[]{Uri.parse(mCM)};
}
}否则{
字符串dataString=intent.getDataString();
if(数据字符串!=null){
结果=新Uri[]{Uri.parse(dataString)};
}
}
}
}
mUMA.onReceiveValue(结果);
mUMA=null;
}否则{
if(requestCode==FCR){
if(null==mUM)返回;
Uri result=intent==null | | resultCode!=result_OK?null:intent.getData();
最小接收值(结果);
mUM=null;
}
}
}
@SuppressLint({“SetJavaScriptEnabled”,“ErrorViewCast”})
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int Permission_All=1;
字符串[]权限={Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.MEDIA_CONTENT_CONTROL,Manifest.permission.CAMERA,};
如果(!hasPermissions(此,Permissions)){
ActivityCompat.requestPermissions(此、权限、权限\全部);
}
//
mProgressBar=(ProgressBar)findViewById(R.id.pb);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。设置抽屉定位器(开关);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
mwebView=(WebView)findViewById(R.id.myWebView);
断言mwebView!=null;
WebSettings WebSettings=mwebView.getSettings();
setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
CookieManager CookieManager=CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
CookieManager.getInstance().setAcceptThirdPartyCookies(mwebView,true);
mwebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
mwebView.getSettings().setCacheMode(WebSettings.LOAD\u CACHE\u ELSE\u网络);
mwebView.getSettings().setAppCacheEnabled(true);
mwebView.setScrollBarStyle(视图。滚动条在覆盖层内);
webSettings.setDomStorageEnabled(true);
webSettings.setLayoutAlgorithm(webSettings.LayoutAlgorithm.Shorrow_COLUMNS);
webSettings.setUseWideViewPort(true);
webSettings.setSavePassword(true);
webSettings.setSaveFormData(真);
webSettings.setEnableSmoothTransition(true);
mwebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mwebView.getSettings().setAllowFileAccess(true);
如果(Build.VERSION.SDK_INT>=21){
webSettings.setMixedContentMode(0);
mwebView.setLayerType(View.LAYER\u TYPE\u硬件,空);
}else if(Build.VERSION.SDK_INT>=19){
mwebView.setLayerType(View.LAYER\u TYPE\u硬件,空);
}else if(Build.VERSION.SDK_INT>=11&&Build.VERSION.SDK_INT<19){
mwebView.setLayerType(View.LAYER\u TYPE\u软件,空);
}
mwebView.setWebVi
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/search"
    android:title="Search"
    app:showAsAction="always"
    app:actionViewClass="android.support.v7.widget.SearchView"
    />
</menu>
 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.main_menu, menu);
    MenuItem item = menu.findItem(R.id.search);
    SearchView searchview = (SearchView) item.getActionView();
    searchview.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            Log.d("hello", query);
            msp_editor.putString("query", query);
            msp_editor.commit();
            fetchData(query);
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }
    });
}