0

古いチュートリアルで問題が発生しています。基本的に、JSON形式で返されたデータをwww.amazingjobs.co.uk/app/marc/api/candidates/からリストビューにプルしようとしています。

私は文字通り24時間前にandroid/javaを学び始めたので、それは非常に単純かもしれませんが、私はそれを理解できないようです。エラーのある行は太字で示されています。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.google.gson.Gson;


public class Searchjobs extends Activity {
    // url to make request
    private static String url = "http://www.amazingjobs.co.uk/app/marc/api/candidates/";

    // JSON Node names
    private static final String TAG_RESULTS = "results";
    // Jobs JSONArray
    JSONArray jobs = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_searchjobs);
        Button Searchbutton = (Button) findViewById(R.id.Searchbutton);
        Searchbutton.setOnClickListener(searchClick);
    }

    private OnClickListener searchClick = new OnClickListener() {
        public void onClick(View v) {

          // Hashmap for ListView
              ArrayList<HashMap<String, String>> JobList = new ArrayList<HashMap<String, String>>();
              // Creating JSON Parser instance
              JSONParser jParser = new JSONParser();
              // getting JSON string from URL
              JSONObject json = jParser.getJSONFromUrl("http://www.amazingjobs.co.uk/app/marc/api/candidates/");
              // Getting Array of Contacts
             try {
                jobs = json.getJSONArray(TAG_RESULTS);

                for(int i = 0; i < jobs.length();i++){
                    JSONObject j = jobs.getJSONObject(i);

                    String title = j.getString("job_title");

                    HashMap<String, String> map = new HashMap<String, String>();

                    map.put("Title", title);

                    JobList.add(map);


                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

             **ListAdapter adapter = new SimpleAdapter(this, JobList,R.layout.list_item,
                        new String[] { "Title" }, new int[] {R.id.title});**
             **ERROR: The constructor SimpleAdapter(new View.OnClickListener(){}, ArrayList<HashMap<String,String>>, int, String[], int[]) is undefined**

                **setListAdapter(adapter);
The method setListAdapter(ListAdapter) is undefined for the type new View.OnClickListener(){}**

                // selecting single ListView item
                **ListView lv = getListView();**
                    **ERROR: The method getListView() is undefined for the type new View.OnClickListener(){}**


                 lv.setOnItemClickListener(new OnItemClickListener() {

                 @Override
                 public void onItemClick(AdapterView<?> parent, View view,
                         int position, long id) {

                 }
             });

        };
    };

編集OK新しいコードは以下のとおりです。アクティビティエラーは間違いなく存在するアクティビティに関連しているため、奇妙に思われますが、Eclipseでも再起動/クリーンアップを試みました。

説明リソースパス場所タイプactivity_searchjobsを解決できないか、フィールドではありませんSearchjobs.java / AmazingJobs / src / app / android /amazingjobs行47Java問題activity_searchjobsを解決できないか、フィールドではありませんSearchjobs.java / AmazingJobs / src / app / android /amazingjobs行105Java問題Searchbuttonを解決できないか、フィールドではありませんSearchjobs.java / AmazingJobs / src / app / android /amazingjobs行48Java問題list_itemを解決できないか、フィールドSearchjobs.java / AmazingJobs / src / app / android/amazingjobs行83Javaの問題

public class Searchjobs extends ListActivity {
    // url to make request
    private static String url = "http://www.amazingjobs.co.uk/app/marc/api/candidates/";

    // JSON Node names
    private static final String TAG_RESULTS = "results";
    // Jobs JSONArray
    JSONArray jobs = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_searchjobs);
        Button Searchbutton = (Button) findViewById(R.id.Searchbutton);
        Searchbutton.setOnClickListener(searchClick);
    }

    private OnClickListener searchClick = new OnClickListener() {
        public void onClick(View v) {

          // Hashmap for ListView
              ArrayList<HashMap<String, String>> JobList = new ArrayList<HashMap<String, String>>();
              // Creating JSON Parser instance
              JSONParser jParser = new JSONParser();
              // getting JSON string from URL
              JSONObject json = jParser.getJSONFromUrl("http://www.amazingjobs.co.uk/app/marc/api/candidates/");
              // Getting Array of Contacts
             try {
                jobs = json.getJSONArray(TAG_RESULTS);

                for(int i = 0; i < jobs.length();i++){
                    JSONObject j = jobs.getJSONObject(i);

                    String title = j.getString("job_title");

                    HashMap<String, String> map = new HashMap<String, String>();

                    map.put("Title", title);

                    JobList.add(map);


                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

             ListAdapter adapter = new SimpleAdapter(getApplication(), JobList,R.layout.list_item,
                     new String[] { "Title" }, new int[] {R.id.title});

                setListAdapter(adapter);

                // selecting single ListView item
                ListView lv = getListView();

                 lv.setOnItemClickListener(new OnItemClickListener() {

                 @Override
                 public void onItemClick(AdapterView<?> parent, View view,
                         int position, long id) {

                 }
             });

        };
    };
4

2 に答える 2

2

ListActivityを使用したくない場合は、メソッドを使用可能にしないように拡張するか、単に置き換える必要があります(必須ではありListActivityませActivityん)getListView()findViewById()

于 2012-10-24T16:22:27.740 に答える
1
ListAdapter adapter = new SimpleAdapter(this, JobList,R.layout.list_item,
                        new String[] { "Title" }, new int[] {R.id.title});

次のように変更する必要があります:

ListAdapter adapter = new SimpleAdapter(getApplicationContext(), JobList,R.layout.list_item,
                        new String[] { "Title" }, new int[] {R.id.title});

2番、

ListView lv = getListView();

ListActivityの代わりに拡張すると解決されますActivity

于 2012-10-24T16:21:07.197 に答える