Привет, я хочу получить строку с JSONArray от localhost и показать ее в обзоре переработчика. но это кру sh при запуске приложения. Моя ошибка - Ошибка надувания класса null. все хорошо . я не знаю, что я делаю.
мои ошибки:
04-15 14:19:30.183 4470-4470/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 4470
android.view.InflateException: Binary XML file line #16: Error inflating class null
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.example.myapplication.adapter.JsonAdapter.onCreateViewHolder(JsonAdapter.java:30)
at com.example.myapplication.adapter.JsonAdapter.onCreateViewHolder(JsonAdapter.java:18)
at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6957)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6126)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6009)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6005)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2302)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4040)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3757)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4310)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2011)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1768)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1024)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5694)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5019)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$Met
мой код адаптера утилитарного просмотра здесь:
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.myapplication.R;
import com.example.myapplication.app.aplication;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class JsonAdapter extends RecyclerView.Adapter<JsonAdapter.MyviewHolder> {
List<String> list;
public JsonAdapter(List<String> list){
this.list=list;
}
@NonNull
@Override
public MyviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(aplication.context).inflate(R.layout.json_layout,parent,false);
return new MyviewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyviewHolder holder, int position) {
holder.txtshowjson.setText(list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
public class MyviewHolder extends RecyclerView.ViewHolder {
TextView txtshowjson;
public MyviewHolder(@NonNull View itemView) {
super(itemView);
txtshowjson=itemView.findViewById(R.id.txtshowjson);
}
}
}
мой mainActtivity и json код доступа здесь :
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import cz.msebera.android.httpclient.Header;
import android.os.Bundle;
import com.example.myapplication.R;
import com.example.myapplication.adapter.JsonAdapter;
import com.example.myapplication.app.app;
import com.loopj.android.http.AsyncHttpResponseHandler;
import org.json.JSONArray;
import org.json.JSONException;
import java.util.ArrayList;
import java.util.List;
public class JSONArrayGetFromServer extends AppCompatActivity {
RecyclerView jsonrecycle;
List<String>list;
JsonAdapter jsonAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jsonarray_get_from_server);
jsonrecycle=findViewById(R.id.jsonrecycleee);
list=new ArrayList<>();
jsonAdapter=new JsonAdapter(list);
jsonrecycle.setAdapter(jsonAdapter);
jsonrecycle.setLayoutManager(new LinearLayoutManager(this));
getData();
}
private void getData(){
HttpConnectionAcyntasck.get("192.168.1.106/PhpProject1/7Learn/phpJsonArray.php", null, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {
parsingJson(new String(responseBody));
} catch (JSONException e) {
app.l(e.toString());
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
private void parsingJson(String message) throws JSONException {
list.clear();
JSONArray jsonArray=new JSONArray(message);
int len=jsonArray.length();
for (int i=0;i<len;i++){
list.add(jsonArray.getString(i));
}
jsonAdapter.notifyDataSetChanged();
}
}
, пожалуйста, помогите.