2016-05-21 16 views
0

私は問題を抱えていますが、何も表示されていません。私は写真のJSONデータを解析中に問題があると思う。 ここに私は写真ギャラリーを表示したいホテルの断片です。JSONとCoverflowライブラリを使用して画像を表示

public class CoverFlowAdapter extends BaseAdapter { 

private ArrayList<Game> data; 
private AppCompatActivity activity; 

public CoverFlowAdapter(AppCompatActivity context, ArrayList<Game> objects) { 
    this.activity = context; 
    this.data = objects; 
} 
@Override 
public int getCount() { 
    return data.size(); 
} 

@Override 
public Game getItem(int position) { 
    return data.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ViewHolder viewHolder; 

    if (convertView == null) { 
     LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.item_flow_view, null, false); 

     viewHolder = new ViewHolder(convertView); 
     convertView.setTag(viewHolder); 
    } else { 
     viewHolder = (ViewHolder) convertView.getTag(); 
    } 
    try { 
     URL myFileUrl = new URL(data.get(position).getImageSource()); 
     Log.e("TAG stringUri",myFileUrl+""); 
     HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); 
     conn.setDoInput(true); 
     conn.connect(); 
     InputStream is = conn.getInputStream(); 
     viewHolder.gameImage.setImageBitmap(BitmapFactory.decodeStream(is)); 
    } 
    catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    //viewHolder.gameImage.setImageResource(data.get(position).getImageSource()); 
    viewHolder.gameName.setText(data.get(position).getName()); 
    return convertView; 
} 

private static class ViewHolder { 
    private TextView gameName; 
    private ImageView gameImage; 

    public ViewHolder(View v) { 
     gameImage = (ImageView) v.findViewById(R.id.image); 
     gameName = (TextView) v.findViewById(R.id.name); 
    } 
} 

} このゲームクラス:ここ

public class ViewHotels extends AppCompatActivity { 
    private Bitmap bitmap; 
    private TextView nom1; 
    private TextView grade; 
    private TextView tele; 
    private ImageView image; 
    private TextView sit; 
    private TextView add1; 
    private TextView email1; 
    private FloatingActionButton fab; 
    LinearLayout layout; 
    private String id; 
    public static final String URL="http://gabes.comlu.com/Base_Controle/getEmpdetail.php"; 
    private FeatureCoverFlow coverFlow; 
    private CoverFlowAdapter adapter; 
    private ArrayList<Game> games; 
    String image2; 
    String addresses; 
    String subject; 
    public static final String TAG_JSON_ARRAY="result"; 

    ImageView im; 
    private int imageSource; 


    public String stringUrl; 
    public String stringUrl1; 
    public String stringUrl2; 
    public String stringUrl3; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.hotelsdetails); 
     final Intent intent = getIntent(); 
     layout=(LinearLayout) findViewById(R.id.layout); 
     coverFlow = (FeatureCoverFlow) findViewById(R.id.coverflow); 

     settingDummyData(); 
     adapter = new CoverFlowAdapter(this, games); 
     coverFlow.setAdapter(adapter); 
     coverFlow.setOnScrollPositionListener(onScrollListener()); 

     id = intent.getStringExtra("Type"); 
     nom1 = (TextView) findViewById(R.id. nom); 
     grade = (TextView) findViewById(R.id. grade); 
     tele = (TextView) findViewById(R.id. tele); 
     image= (ImageView)findViewById(R.id.imageView); 
     sit=(TextView) findViewById(R.id.site); 
     add1=(TextView) findViewById(R.id.adde); 
     email1=(TextView)findViewById(R.id.email); 


     nom1.setText(id); 
     im =new ImageView (this); 
     getEmployee(); 
    } 


    private void getEmployee(){ 
     final String login11 = nom1.getText().toString().trim(); 
     class GetEmployee extends AsyncTask<Void,Void,String>{ 
      ProgressDialog loading; 
      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       loading = ProgressDialog.show(ViewHotels.this,"Fetching...","Wait...",false,false); 
      } 

      @Override 
      protected void onPostExecute(String s) { 
       super.onPostExecute(s); 
       loading.dismiss(); 
       showEmployee(s); 
      } 

      @Override 
      protected String doInBackground(Void... v) { 
       HashMap<String,String> params = new HashMap<>(); 
       params.put("id",login11) 

       RequestHandler rh = new RequestHandler(); 

       String res= rh.sendPostRequest(URL, params); 

       return res; 
      } 
     } 
     GetEmployee ge = new GetEmployee(); 
     ge.execute(); 
    } 
    private void showEmployee(String json){ 
     try { 

      JSONArray result = new JSONArray(json); 
      JSONObject c = result.getJSONObject(0); 
      String name = c.getString("nom"); 
      String tel = c.getString("tele"); 
      String grade1 = c.getString("grade"); 
      String image1 = c.getString("image"); 
      image2 = c.getString("img1"); 
      String image3 = c.getString("img2"); 
      String image4 = c.getString("img3"); 
      String site= c.getString("site"); 
      String add11= c.getString("add"); 
      String email11= c.getString("email"); 

      tele.setText("Tel : \t"+tel); 
      grade.setText("Grade : \t"+grade1); 
      sit.setText("site: \t"+site); 
      add1.setText("adresse :\t" + add11); 
      email1.setText("email :\t"+ email11); 


      final ImageView im1 =new ImageView (this); 
      final ImageView im2 =new ImageView (this); 
      final ImageView im3 =new ImageView (this); 

      stringUrl = ("http://gabes.comlu.com/Base_Controle/ImageBD/"+image1+".jpg"); 
      stringUrl1 = ("http://gabes.comlu.com/Base_Controle/ImageBD/"+image2+".jpg"); 
      stringUrl2 = ("http://gabes.comlu.com/Base_Controle/ImageBD/"+image3+".jpg"); 
      stringUrl3 = ("http://gabes.comlu.com/Base_Controle/ImageBD/"+image4+".jpg"); 

} catch (JSONException e) { 
     e.printStackTrace(); 
     } 

     } 

    private FeatureCoverFlow.OnScrollPositionListener onScrollListener() { 
     return new FeatureCoverFlow.OnScrollPositionListener() { 
      @Override 
      public void onScrolledToPosition(int position) { 
       Log.v("ViewHotels", "position: " + position); 
      } 

      @Override 
      public void onScrolling() { 
       Log.i("ViewHotels", "scrolling"); 
      } 
     }; 
    } 
    private void settingDummyData() { 
     games = new ArrayList<>(); 
     Game game1 = new Game("stringUrl",""); 
     Game game2 = new Game("stringUrl1",""); 
     Game game3 = new Game("stringUrl2",""); 

     games.add(game1); 
     games.add(game2); 
     games.add(game3); 


    } 
} 

はCoverFlowのアダプタです

public class Game { 

private String name; 
private String imageSource; 

public Game (String imageSource, String name) { 
    this.name = name; 
    this.imageSource = imageSource; 
} 

public String getName() { 
    return name; 
} 

public String getImageSource() { 
    return imageSource; 
} 

}

答えて

0

私は思う(の1つ)問題(複数可)はこの部分です:

Game game1 = new Game("stringUrl",""); 
Game game2 = new Game("stringUrl1",""); 
Game game3 = new Game("stringUrl2",""); 

"stringUrlx"という文字列をゲームコンストラクタに渡しています。 Javaの場合、文字列を明示的に定義するために引用符( "")が使用されます。つまり、変数stringUrlの代わりに "stringUrl"を引き渡しています( "http://gabes.comlu.com/Base_Controle/ImageBD/" + image1 + ")。 jpg ")。

その1つの問題を解決する必要があり

Game game1 = new Game(stringUrl,""); 

によって

Game game1 = new Game("stringUrl",""); 

これ以外にも、ファイルのダウンロードやメモリ管理に関する問題が発生します。あらかじめ構築された非同期イメージの読み込みとキャッシングライブラリ(GlideやPicassoなど)を使用するJava固有のチュートリアルを調べることをお勧めします。

+0

https://plus.google.com/u/0/+MarwaMarwita967/posts/Z2UwFfMsX1e?pid = 6287456633495237122&oid = 110504829645267340465 –

+0

最初のstringUrlのみに推奨された変更が*正しく*適用されているようです。ここでは、 "... null.jpg"と表示されています。これは、文字列image1 = c.getString( "image")を意味します。無効である。だから、それを引き起こす原因を突き止めよう! – Aeefire

+0

はい!私はあなたが示唆したようにURLを変更しました。 –

関連する問題