2017-06-07 14 views
0

jsonを作成し、git.butの助けを借りてURLを作成しました。要求されたデータを次のように取得できません。結果はnullしなさいそれは私のデバイス上で正常に動作していることjava.net.UnknownHostException:ホスト "gist.githubusercontent.com"を解決できません:ホスト名に関連付けられたアドレスがありません

public class TestActivity extends AppCompatActivity { 
    Button btnHit; 
    ListView moviList; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test); 
     btnHit= (Button) findViewById(R.id.btn); 
     moviList=(ListView)findViewById(R.id.lvMovie); 

     /* btnHit.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       new JSONTask().execute("https://gist.githubusercontent.com/PoonamWadekar/5c69afdcbe9c68240c546f73bcb40c69/raw/050254dd568a972442cdff0d984c396b9b340b7f/movie.json"); 
      } 

     });*/ 

    } 

    public class JSONTask extends AsyncTask<String,String,List<MovieModel>>{ 

     @Override 
     protected List<MovieModel> doInBackground(String... params) { 
      HttpURLConnection httpURLConnection = null; 
      BufferedReader reader = null; 
      try { 
       URL url = new URL(params[0]); 
       httpURLConnection = (HttpURLConnection) url.openConnection(); 
       httpURLConnection.connect(); 
       InputStream inputStream = httpURLConnection.getInputStream(); 
       reader = new BufferedReader(new InputStreamReader(inputStream)); 
       StringBuffer buffer = new StringBuffer(); 
       String line = ""; 
       while ((line = reader.readLine()) != null) { 
        buffer.append(line); 
       } 
       String finalJson=buffer.toString(); 
       JSONObject parentObj=new JSONObject(finalJson); 
       JSONArray parentArray=parentObj.getJSONArray("movies"); 
       List<MovieModel> movieModelList=new ArrayList<>(); 

       for (int i=0; i<parentArray.length() ; i++) 
       { 
       JSONObject finalObj=parentArray.getJSONObject(i); 
        MovieModel movieModel=new MovieModel(); 
        movieModel.setMovie(finalObj.getString("movie")); 
        movieModel.setYear(finalObj.getInt("year")); 
        movieModel.setRating((float) finalObj.getDouble("rating")/2); 
        movieModel.setStory(finalObj.getString("story")); 
        //movieModel.setImage(finalObj.getString("image")); 
        List<MovieModel.Caste> casteList=new ArrayList<>(); 
        for (int j=0;j<finalObj.getJSONArray("caste").length();j++){ 
         MovieModel.Caste caste=new MovieModel.Caste(); 
         caste.setName(finalObj.getJSONArray("caste").getJSONObject(j).getString("name")); 
         casteList.add(caste); 
        } 
        movieModel.setCasteList(casteList); 

        movieModelList.add(movieModel); 
        Log.d("hi","list+++++++++++++++++++++++" +movieModelList); 
       } 
       return movieModelList; 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } finally { 
       if (httpURLConnection != null) 
        httpURLConnection.disconnect(); 
       try { 
        if (reader != null) 
         reader.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      return null; 

     } 
     @Override 
     protected void onPostExecute(List<MovieModel> result) { 
      super.onPostExecute(result); 
      if (result==null){ 
       Log.d("Hi","sorry no result"); 
       return; 
      } 

      //set data to recycler view 
      MovieAdapter adapter=new MovieAdapter(getApplicationContext(),R.layout.movie_cell,result); 

      moviList.setAdapter(adapter); 


     } 

    } 


    public class MovieAdapter extends ArrayAdapter{ 
     private List<MovieModel> movieModelList=new ArrayList<MovieModel>(); 
     private int resource; 
     LayoutInflater inflater; 

     public MovieAdapter(Context context, int resource, List<MovieModel> objects) { 
      super(context, resource, objects); 
      movieModelList=objects; 
      this.resource=resource; 
      inflater= (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 


     } 

     @NonNull 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      if (convertView==null) 
      { 
       convertView=inflater.inflate(resource,null); 
      } 
      ImageView movieIcon; 
      TextView name; 
      TextView year; 
      RatingBar ratingBar; 
      TextView tvCaste; 
      TextView story; 


      movieIcon= (ImageView) convertView.findViewById(R.id.place_image); 
      name= (TextView) convertView.findViewById(R.id.tv_name); 
      year= (TextView) convertView.findViewById(R.id.tv_year); 
      ratingBar= (RatingBar) convertView.findViewById(R.id.rt_ratebar); 
      tvCaste= (TextView) convertView.findViewById(R.id.tv_cast); 
      story= (TextView) convertView.findViewById(R.id.tv_story); 


      name.setText(movieModelList.get(position).getMovie()); 
      year.setText(" year -"+ movieModelList.get(position).getYear()); 
      StringBuffer stringBuffer=new StringBuffer(); 
      for (MovieModel.Caste caste: movieModelList.get(position).getCasteList()){ 
       stringBuffer.append(caste.getName() + ","); 
      } 
      tvCaste.setText(stringBuffer); 

      story.setText(movieModelList.get(position).getStory()); 
      // rating bar 
      ratingBar.setRating(movieModelList.get(position).getRating()/2); 

      return convertView; 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.actionbar_profile,menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     int id=item.getItemId(); 

     if(id==R.id.refresh){ 
      String url="https://gist.githubusercontent.com/PoonamWadekar/5c69afdcbe9c68240c546f73bcb40c69/raw/9e3de75ffa48c70f81ad07b7623e5fd0789142f0/movie.json"; 
      Log.d("url____",url); 
      new JSONTask().execute(url); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

あなたのマニフェストファイルにインターネットアクセス許可を追加しましたか? – mt0s

答えて

1

で私を助けに来ています。 シナリオにはほとんど疑問があります。

  • あなたがアプリケーションを実行するためのエミュレータを使用してい
  • のmanifest.xmlファイルに設定されているインターネットのアクセス権を持っていますか?
  • WiFiを使用している場合は、再接続してもう一度確認してください。
  • VPNを使用していますか?はいの場合は、VPNから切断して再試行してください。 ありがとう
+0

コメントのためにchaitanyaさんに感謝します。はい、私は許可を与え、emulater.everythingを使用しても問題ありません。 – chinu

関連する問題

 関連する問題