The Complete Idiots Guide to Android App Development を使用して開始します。私はこの本を読んでいて、理解できない問題に出くわしました。アプリに検索機能を追加するための検索クラスを作成しています。Eclipse で複数のエラーが発生していますが、最もよくわからないのは、「構文エラーです。「}」を挿入して ClassBody を完成させてください」です。Eclipse がクラス本体を閉じるように指示していることは理解していますが、閉じられています。それを閉じるように言っている場所ではありません。閉じるように指示されている場所の下には、別の方法で入力できます。
これがクラス全体のコードです。
package com.recipesapp;
import java.util.ArrayList;
import android.app.ListActivity;
import android.app.SearchManager;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.ListView;
public class RecipeSearch extends ListActivity{
@Override
public void onCreate(Bundle savedInstanceState){
//super.onCreate(savedInstanceState);
setContentView(R.layout.recipe_list);
Intent intent = getIntent();
if(Intent.ACTION_VIEW.equals(intent.getAction())){
//A search suggestion was clicked
Intent recipeIntent = new Intent(this, RecipeEntry.class);
recipeIntent.setData( intent.getData() );
startActivity(recipeIntent);
finish();
}
else if(Intent.ACTION_SEARCH.equals(intent.getAction())){
//The search was executed
String query = intent.getStringExtra(SearchManager.QUERY);
showRecipes(query);
}
}
private static final ArrayList<String> _RecipeSearchResults = new ArrayList<String>();
private ListView resultsView;
private void showRecipes(query){
SharedPreferences recipeNames = getSharedPreferences(MainMenu.RecipeNamesPref, RecipeEntry.MODE_WORLD_READABLE);
String[] recipeList= recipeNames.getString(MainMenu.RecipeNamesPref, null).split(",");
for(String recipe: recipeList){
if(recipe.contains(query))
ReicpeSearchResults.add(recipe);
resultsView=(ListView) findViewById(android.R.id.list);
resultsView.setAdapter(new ListViewAdapter(this));
resultsView.setTextFilterEnabled(true);
resultsView.setOnItemClickListener(this);
}
}
}
他にもエラーがあることは知っていますが、これを理解することはできません。私はすべての中括弧を開いて閉じていることを確認しました。35行目に入れたい理由がわかりません。これは次のとおりです。
private ListView resultsView;
また、最後の中括弧も削除する必要があります。助けていただければ幸いです。