-1

Wie die ListActivity ordnungsgemäß in Fragment? Ich bekomme immer einen Fehler.Android: Wie extend verwenden ListActivity in erweitern Fragment

Ich habe dieses Fragment:

public class Tools extends Fragment { 

    public Tools(){} 
    RelativeLayout view; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     view = (RelativeLayout) inflater.inflate(R.layout.tools, container, false); 
     getActivity().setTitle("Tools"); 
     return view; 
    } 
} 

und ich möchte diese ListActivity Extend in diesem Fragment verwenden:

public class MainActivity extends ListActivity { 
    private String URL_ITEMS = "http://192.168.1.88/asd/getFixture.php"; 
    private static final String TAG_FIXTURE = "fixture"; 
    private static final String TAG_MATCHID = "matchId"; 
    private static final String TAG_TEAMA = "teamA"; 
    private static final String TAG_TEAMB = "teamB"; 
    JSONArray matchFixture = null; 
    ArrayList<HashMap<String, String>> matchFixtureList = new ArrayList<HashMap<String, String>>(); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Call Async task to get the match fixture 
     new GetFixture().execute(); 
    } 
    private class GetFixture extends AsyncTask<Void, Void, Void> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 
     @Override 
     protected Void doInBackground(Void... arg) { 
      ServiceHandler serviceClient = new ServiceHandler(); 
      Log.d("url: ", "> " + URL_ITEMS); 
      String json = serviceClient.makeServiceCall(URL_ITEMS,ServiceHandler.GET); 
      // print the json response in the log 
      Log.d("Get match fixture response: ", "> " + json); 
      if (json != null) { 
       try { 
        Log.d("try", "in the try"); 
        JSONObject jsonObj = new JSONObject(json); 
        Log.d("jsonObject", "new json Object"); 
        // Getting JSON Array node 
        matchFixture = jsonObj.getJSONArray(TAG_FIXTURE); 
        Log.d("json aray", "user point array"); 
        int len = matchFixture.length(); 
        Log.d("len", "get array length"); 
        for (int i = 0; i < matchFixture.length(); i++) { 
         JSONObject c = matchFixture.getJSONObject(i); 
         String matchId = c.getString(TAG_MATCHID); 
         Log.d("matchId", matchId); 
         String teamA = c.getString(TAG_TEAMA); 
         Log.d("teamA", teamA); 
         String teamB = c.getString(TAG_TEAMB); 
         Log.d("teamB", teamB); 
         // hashmap for single match 
         HashMap<String, String> matchFixture = new HashMap<String, String>(); 
         // adding each child node to HashMap key => value 
         matchFixture.put(TAG_MATCHID, matchId); 
         matchFixture.put(TAG_TEAMA, teamA); 
         matchFixture.put(TAG_TEAMB, teamB); 
         matchFixtureList.add(matchFixture); 
        } 
       } 
       catch (JSONException e) { 
        Log.d("catch", "in the catch"); 
        e.printStackTrace(); 
       } 
      } else { 
       Log.e("JSON Data", "Didn't receive any data from server!"); 
      } 
      return null; 
     } 
     @Override 
     protected void onPostExecute(Void result) { 
      super.onPostExecute(result); 
      ListAdapter adapter = new SimpleAdapter(
        MainActivity.this, matchFixtureList, 
        R.layout.list_item, new String[] { 
        TAG_MATCHID, TAG_TEAMA,TAG_TEAMB 
      } 
        , new int[] { 
        R.id.matchId,R.id.teamA, 
        R.id.teamB 
      } 
      ); 
      setListAdapter(adapter); 
     } 
    } 

Dies ist der Code, mit dem ich versuchte, diese ListActivity in Fragment zu setzen:

public class terbaru extends Fragment { 

    public terbaru(){} 
    RelativeLayout view; 
    private String URL_ITEMS = "http://192.168.1.88/asd/getFixture.php"; 
    private static final String TAG_FIXTURE = "fixture"; 
    private static final String TAG_MATCHID = "matchId"; 
    private static final String TAG_TEAMA = "teamA"; 
    private static final String TAG_TEAMB = "teamB"; 
    JSONArray matchFixture = null; 
    ArrayList<HashMap<String, String>> matchFixtureList = new ArrayList<HashMap<String, String>>(); 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     view = (RelativeLayout) inflater.inflate(R.layout.terbarus, container, false); 
     // Call Async task to get the match fixture 
     new GetFixture().execute(); 
    } 

    private class GetFixture extends AsyncTask<Void, Void, Void> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 
     @Override 
     protected Void doInBackground(Void... arg) { 
      ServiceHandler serviceClient = new ServiceHandler(); 
      Log.d("url: ", "> " + URL_ITEMS); 
      String json = serviceClient.makeServiceCall(URL_ITEMS,ServiceHandler.GET); 
      // print the json response in the log 
      Log.d("Get match fixture response: ", "> " + json); 
      if (json != null) { 
       try { 
        Log.d("try", "in the try"); 
        JSONObject jsonObj = new JSONObject(json); 
        Log.d("jsonObject", "new json Object"); 
        // Getting JSON Array node 
        matchFixture = jsonObj.getJSONArray(TAG_FIXTURE); 
        Log.d("json aray", "user point array"); 
        int len = matchFixture.length(); 
        Log.d("len", "get array length"); 
        for (int i = 0; i < matchFixture.length(); i++) { 
         JSONObject c = matchFixture.getJSONObject(i); 
         String matchId = c.getString(TAG_MATCHID); 
         Log.d("matchId", matchId); 
         String teamA = c.getString(TAG_TEAMA); 
         Log.d("teamA", teamA); 
         String teamB = c.getString(TAG_TEAMB); 
         Log.d("teamB", teamB); 
         // hashmap for single match 
         HashMap<String, String> matchFixture = new HashMap<String, String>(); 
         // adding each child node to HashMap key => value 
         matchFixture.put(TAG_MATCHID, matchId); 
         matchFixture.put(TAG_TEAMA, teamA); 
         matchFixture.put(TAG_TEAMB, teamB); 
         matchFixtureList.add(matchFixture); 
        } 
       } 
       catch (JSONException e) { 
        Log.d("catch", "in the catch"); 
        e.printStackTrace(); 
       } 
      } else { 
       Log.e("JSON Data", "Didn't receive any data from server!"); 
      } 
      return null; 
     } 
     @Override 
     protected void onPostExecute(Void result) { 
      super.onPostExecute(result); 
      ListAdapter adapter = new SimpleAdapter(
        terbaru.this, matchFixtureList, 
        R.layout.list_item, new String[] { 
        TAG_MATCHID, TAG_TEAMA,TAG_TEAMB 
      } 
        , new int[] { 
        R.id.matchId,R.id.teamA, 
        R.id.teamB 
      } 
      ); 
      setListAdapter(adapter); 
      return view; 
     } 
    } 

Antwort

0

Sie können nicht mehrere Klassen in Java erweitern. Um ListView in Fragment zu implementieren, müssen Sie RecycleView oder Listview manuell implementieren oder Sie können ListFragment erweitern, um ListActivity

zu implementieren
Verwandte Themen