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);