我想在gridView中设置一个对象:名为artefact的对象可以是图像或消息,但在运行我的代码并添加对象后,网格视图不会出现。 这是我的代码。 这是我的适配器
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 :(得分:0)
我不知道你想在这里实现什么。但是将你的getView更改为这样的东西。
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
看看它是否有帮助。