2016-04-07 11 views
0

私はgridViewにオブジェクトを設定したい:artefactというオブジェクトは画像やメッセージになる可能性がありますが、コードを実行してオブジェクトを追加するとグリッドビューは表示されません。 これは私のコードです。 は、私はあなたがこのような何かにあなたのgetViewメソッドを変更.But、ここで達成しようとしているのか分からない私のアダプタ複数のレイアウトを持つgridViewを作成する

public ArtifactAdapter(Context context,List<Artifact> artifacts) 
{ 
    this.context =context; 
    this.artifacts = artifacts; 
} 
@Override 
public int getCount() { 

    // Number of times getView method call depends upon gridValues.length 
    return artifacts.size(); 
} 

@Override 
public Object getItem(int position) { 

    return null; 
} 

@Override 
public long getItemId(int position) { 

    return 0; 
} 

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

    // LayoutInflator to call external grid_item.xml file 


    LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    Artifact artifact = artifacts.get(position); 
    View gridView; 
    gridView = new View(context); 
    if (convertView == null) { 

     ; 
     switch (artifact.getType()) { 
      case 1: 

       gridView = inflater.inflate(R.layout.artifact_article, null); 
       mTitle = (TextView) gridView.findViewById(R.id.titre); 
       mPseudo = (TextView) gridView.findViewById(R.id.pseudo); 
       mMessage = (TextView) gridView.findViewById(R.id.message_input); 
       mTitle.setText(artifact.getTitle()); 
       mPseudo.setText(artifact.getPseudo()); 
       mMessage.setText(artifact.getMessage()); 


      case 2: 
       gridView = inflater.inflate(R.layout.artifact_image, null); 
       mPseudo = (TextView) gridView.findViewById(R.id.pseudo); 
       mImage = (ImageView) gridView.findViewById(R.id.imageReceived); 
       mPseudo.setText(artifact.getPseudo()); 
       mImage.setImageBitmap(BitmapFactory.decodeFile(artifact.getImagePath())); 


     } 
    } 
    else { 

      gridView = (View) convertView; 
     } 
    return gridView; 
    } 


} 

この活動

GridView listArtifactView; 
    List<Artifact> listArtifact = new ArrayList<>(); 
    ArtifactAdapter artifactAdapter = new ArtifactAdapter(this,listArtifact); 
Artifact artefact = new Artifact(getPseudo()); 
        artefact.setTitle(titre.getText().toString()); 
        artefact.setMessage(message.getText().toString()); 
        artefact.setType(1); 

listArtifactView = (GridView) findViewById(R.id.listArtifactView); 

     listArtifactView.setAdapter(artifactAdapter); 

       listArtifact.add(artefact); 

答えて

0

をthisis。

LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    Artifact artifact = artifacts.get(position); 
    if (convertView == null) { 

     switch (artifact.getType()) { 
      case 1: 

       convertView = inflater.inflate(R.layout.artifact_article, null); 
       mTitle = (TextView) convertView .findViewById(R.id.titre); 
       mPseudo = (TextView) convertView .findViewById(R.id.pseudo); 
       mMessage = (TextView) convertView .findViewById(R.id.message_input); 
       mTitle.setText(artifact.getTitle()); 
       mPseudo.setText(artifact.getPseudo()); 
       mMessage.setText(artifact.getMessage()); 


      case 2: 
       convertView = inflater.inflate(R.layout.artifact_image, null); 
       mPseudo = (TextView) convertView .findViewById(R.id.pseudo); 
       mImage = (ImageView) convertView .findViewById(R.id.imageReceived); 
       mPseudo.setText(artifact.getPseudo()); 
       mImage.setImageBitmap(BitmapFactory.decodeFile(artifact.getImagePath())); 


     } 
    } 

    return convertView 

参考にしてください。

関連する問題