2016-05-15 58 views
1

我有麻烦,IM尝试我的片段转换成活动,当IM尝试运行的应用程序,所有的数据不是没有警告或错误显示加载,并请别人帮数据didnt负载,而不是错误或警告显示

import android.app.Dialog; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.TextView; 

import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.VolleyLog; 
import com.android.volley.toolbox.ImageLoader; 
import com.android.volley.toolbox.JsonArrayRequest; 
import com.android.volley.toolbox.NetworkImageView; 

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

import java.util.ArrayList; 
import java.util.List; 

public class RekomendasiExercise extends AppCompatActivity implements AdapterView.OnItemClickListener{ 

    // Log tag 
    private static final String TAG = AbdominalFragment.class.getSimpleName(); 

    // Movies json url 
    private static final String url = "http://......"; 
    private ProgressDialog pDialog; 
    private List<Exercise> exerciseList = new ArrayList<Exercise>(); 
    private ListView listView; 
    private CustomListAdapter adapter; 

    public RekomendasiExercise() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     hidePDialog(); 
    } 

    private void hidePDialog() { 
     if (pDialog != null) { 
      pDialog.dismiss(); 
      pDialog = null; 
     } 
    } 


    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.activity_list, container, false); 
     // Inflate the layout for this fragment 

     final ListView listView = (ListView) rootView.findViewById(R.id.list); 
     adapter = new CustomListAdapter(this, exerciseList); 
     listView.setAdapter(adapter); 

     pDialog = new ProgressDialog(this); 
     // Showing progress dialog before making http request 
     pDialog.setMessage("Loading..."); 
     pDialog.show(); 

     if(exerciseList.isEmpty()) { 
      // Creating volley request obj 
      JsonArrayRequest exerciseReq = new JsonArrayRequest(url, 
        new Response.Listener<JSONArray>() { 
         @Override 
         public void onResponse(JSONArray response) { 
          Log.d(TAG, response.toString()); 
          hidePDialog(); 

          exerciseList.clear(); 

          // Parsing json 
          for (int i = 0; i < response.length(); i++) { 
           try { 

            JSONObject obj = response.getJSONObject(i); 
            Exercise exercise = new Exercise(); 
            if (obj.getString("tipe").equals("abdominal")) { 
             exercise.setNama(obj.getString("nama")); 
             exercise.setGambar1(obj.getString("gambar1")); 
             // Genre is json array 
             // adding movie to movies array 
             exerciseList.add(exercise); 
            } 
           } catch (JSONException e) { 
            e.printStackTrace(); 
           } 

          } 

          // notifying list adapter about data changes 
          // so that it renders the list view with updated data 
          adapter.notifyDataSetChanged(); 
         } 
        }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        VolleyLog.d(TAG, "Error: " + error.getMessage()); 
        hidePDialog(); 

       } 
      }); 

      // Adding request to request queue 
      AppController.getInstance().addToRequestQueue(exerciseReq); 
     }else{ 
      hidePDialog(); 
     } 

     listView.setOnItemClickListener(this); 
     return rootView; 
    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View convertView, int position, long id) { 
     // Create custom dialog object 
     final Dialog dialog = new Dialog(this); 

     // Include dialog.xml file 
     dialog.setContentView(R.layout.dialog); // layout of your dialog 

     ImageLoader imageLoader = AppController.getInstance().getImageLoader(); 
     NetworkImageView thumbnail1 = (NetworkImageView) dialog.findViewById(R.id.gambar1); 
     thumbnail1.setImageUrl(exerciseList.get(position).getGambar1(), imageLoader); 


     // Set dialog title 
     dialog.setTitle("Detail"); 

     // set values for custom dialog components - text, image and button 
     TextView nama = (TextView) dialog.findViewById(R.id.nama); 
     nama.setText("Nama = " + exerciseList.get(position).getNama()); 

     dialog.show(); 
    } 
} 

如果Fragment中的默认运行完美并且没有问题,但是当我尝试使用活动时,所有数据都不会加载。

+0

什么的?我建议您正确调试应用程序以了解发生了什么问题,很难根据您的描述来猜测问题是什么。 – Egor

+0

即时尝试调试和这里logcat:'05-16 01:54:04.445 1261-1261 /? D/wpa_supplicant:RX ctrl_iface - hexdump(len = 11):53 49 47 4e 41 4c 5f 50 4f 4c 4c 05-16 01:54:04.445 1261-1261 /? D/wpa_supplicant:eth1:控制接口命令'SIGNAL_POLL' 05-16 01:54:07.445 1261-1261 /? D/wpa_supplicant:RX ctrl_iface - hexdump(len = 11):53 49 47 4e 41 4c 5f 50 4f 4c 4c 05-16 01:54:07.445 1261-1261 /? D/wpa_supplicant:eth1:控制接口命令'SIGNAL_POLL'' –

+0

这不会告诉我任何事情,对不起。 – Egor

回答

1

我看不到在创建活动时会运行的任何代码。你有一个onCreateView方法(我猜你正在从基于Fragment的实现中继承)。除非你的代码中的某处(我看不出如何)调用该方法,否则它不会被调用,因为它不是Activity生命周期的一部分。我会将整个代码从该方法复制到onCreate方法(作为起点)并删除该方法。然后我会做如下修改第几行

// View rootView = inflater.inflate(R.layout.activity_list, container, false); 
    // Noticed that I commented out the above line and changed the line below 
    final ListView listView = (ListView) findViewById(R.id.list); 

我并不认为,这将解决你所有的问题,有可能是(可能)等问题,但你应该可能是第一步。我强烈建议你对Activity和Fragment类更熟悉,并对它们的生命周期更加熟悉。此外,你应该摆脱在logcat的

public RekomendasiExercise() { 
    // Required empty public constructor 
} 

最好的运气