2017-08-27 18 views
1

アクションバーから検索を実行しようとしています。 私がインテントで呼び出すアクティビティGetBookInfo.classは、Google Books APIから書籍に関する情報を取得します。アクションバーからAPIで検索を実行

私の問題は、書いてみると、書籍のタイトル全体ではなく単語の手紙を書くことしかできないため、検索はうまくいかないということです。どうすればこの問題を解決できますか?

"MainActivity"に次のコードがあります。あなたが提出したときに任意の文字が追加されたときにIntentActivity

onQueryTextChangeGetBookInfoに発射されます、これはあなたがあなたの完全なテキストを入力することができます

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      Intent intent1 = new Intent(MainActivity.this, GetBookInfo.class); 
      startActivity(intent1); 
      return true; 
     } 

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

と:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    MenuItem item = menu.findItem(R.id.search); 
    SearchView searchView = (SearchView) item.getActionView(); 
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      Intent intent1 = new Intent(MainActivity.this, GetBookInfo.class); 
      startActivity(intent1); 
      return false; 
     } 
    }); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 

     case R.id.settings: 
      Intent intent2 = new Intent(MainActivity.this, Ajustes.class); 
      startActivity(intent2); 
      return true; 
     case R.id.about: 
      Intent intent3 = new Intent(MainActivity.this, About.class); 
      startActivity(intent3); 
      return true; 
     case R.id.exit: 
      new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Salir") 
        .setMessage("¿Estás seguro?").setNegativeButton(android.R.string.cancel, null).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        finish(); 
       } 
      }).show(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

答えて

0
はにあなたのコードを変更

/removed/modified inside SearchViewのように、最初の文字を入力するとすぐに、あなたの意図がトリガーされました

希望すると助かります!

+1

これは機能します。どうもありがとうございます! –

関連する問題