Ich versuche, das Symbol der benutzerdefinierten Listenansicht zu ändern, aber es stürzt ständig ab. Wie ändere ich das Symbol für jede Seite? zum Beispiel:Ändern Sie das Symbol in der Listenansicht
Ich habe versucht, das Symbol in der Forloop, aber das macht es nur zum Absturz, ich habe auch versucht, es google, aber konnte nichts finden, das mein Problem behoben. Auch ich habe erst vor kurzem begonnen, Android zu entwickeln. Also habe ich nicht viel Wissen darüber.
Dies ist die "Textseite", die das Symbol als Textsymbol enthält.
Dies ist die "News-Seite" Ich möchte den Nachrichten-Symbol haben, aber seine jetzt wie folgt aus:
Dies ist mein Code, den ich Verwenden Sie, um die "Textseite" zu generieren
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.comp_cont_bar);
ListView lv = (ListView) findViewById(R.id.lv1);
registerForContextMenu(lv);
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipelayout);
mSwipeRefreshLayout.setOnRefreshListener(
new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
finish();
startActivity(getIntent());
}
}
);
try {
APIClient api = new APIClient();
JSONArray result = null;
try {
result = api.execute("http://test.soundwave.drieo.nl/api/content" + apikey).get();
}
catch (Exception e) {
e.printStackTrace();
}
List<CustomListView> contents = new ArrayList<CustomListView>();
for(int i = 0; i < result.length(); i++){
try {
JSONObject row = result.getJSONObject(i);
String content = row.optString("FormattedName");
String content2 = row.optString("CreatedBy");
String content3 = row.optString("Id");
CustomListView item = new CustomListView();
item.firstLine = content;
item.description = content2;
item.ID = content3;
contents.add(item);
} catch (JSONException e) {
e.printStackTrace();
}
}
ListAdapter theAdapter = new CustomAdapter(MainComp_Content.this, contents);
ListView theListView = (ListView) findViewById(R.id.lv1);
theListView.setAdapter(theAdapter);
theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
TextView textView = (TextView) view.findViewById(R.id.tbid);
UID = textView.getText().toString();
Intent intent = new Intent(MainComp_Content.this, MainComp_Content_edit.class);
intent.putExtra("uid", UID);
startActivity(intent);
}
});
theListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.tbid);
UID = textView.getText().toString();
return false;
}
});
} catch (Exception e) {
e.printStackTrace();
}
Individuelle Adaptercode (wobei i das Symbol erklärt haben):
package nl.drieo.soundwave.test.cms;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
public class CustomAdapter extends ArrayAdapter<CustomListView> {
public CustomAdapter(Context context, List<CustomListView> contents) {
super(context, R.layout.custom_row, contents);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater theInflater = LayoutInflater.from(getContext());
View theView = theInflater.inflate(R.layout.custom_row, parent, false);
CustomListView tvFirstItem = getItem(position);
TextView theTextView = (TextView) theView.findViewById(R.id.firstLine);
theTextView.setText(tvFirstItem.firstLine);
TextView theTextView2 = (TextView) theView.findViewById(R.id.secondLine);
theTextView2.setText(tvFirstItem.description);
TextView theTextView3 = (TextView) theView.findViewById(R.id.tbid);
theTextView3.setText(tvFirstItem.ID);
ImageView theImageView = (ImageView) theView.findViewById(R.id.icon);
theImageView.setImageResource(R.drawable.ic_content);
return theView;
}
}
Was haben Sie bisher versucht? Können Sie das Protokoll posten? –
@YasirTahir Ich habe versucht, das Symbol in der For-Schleife hinzuzufügen, aber es stürzt immer auf mich, ich bin neu auf Android, so habe ich nicht viel Erfahrung mit diesem Zeug, wie poste ich das Protokoll? Meinst du den Code, der generiert wird, wenn ich auf Schaltflächen auf dem Emulator klicke? Ich habe auch versucht, mein Problem zu googeln, konnte aber nicht feststellen, dass mein Problem auf irgendeiner Seite behoben wurde. – Robbert
Verwenden Sie für die News-Seite denselben Code wie für die Testseite? Brother, einfache Lösung, wenn Ihr Modell für beide gleich ist, ist zwei verschiedene Adapter eine für die Testseitenliste und andere für die News-Seitenliste zu haben.Eine etwas kompliziertere Lösung besteht darin, zwei zusätzliche Felder in Ihrem Modell zu haben und basierend darauf festzulegen, welches Bild in welchem Fall angezeigt werden soll. –