0
我想在我的gridView中設置一個對象:名爲artefact的對象可以是圖像或消息,但是在運行我的代碼並添加一個對象後,網格視圖不會出現。 這是我的代碼。 THISIS我的適配器使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);