Dieses Problem, dass das Listview nicht angezeigt wird, scheint sehr seltsam zu sein. Lassen Sie mich zuerst meine Funktionscodes in der Aktivität posten: geschütztes ListView mListView;ListView wird nicht angezeigt, obwohl ListViews getCount() ordnungsgemäß funktioniert
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.result);
mListView = (ListView)this.findViewById(R.id.wrdList);
handleIntent(getIntent());
}
private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String word = intent.getStringExtra(SearchManager.QUERY);
//use the query to search your data somehow
//Columns to be selected in database
String sel[] = {"_id", "wort", DictDBHelper.get2LtrLang()};
Cursor SrhRet = mSrhHelper.searchWord(word, sel);
//Columns to be showed in ListView
String col[] = {"wort", DictDBHelper.get2LtrLang()};
showList(SrhRet, col);
SrhRet.close();
} else if (Intent.ACTION_VIEW.equals(intent.getAction())) {
}
}
/*
* Set the TextView to print how many words are found in database
*/
protected void setCount(int count) {
TextView tv = (TextView)this.findViewById(R.id.wrdCount);
tv.setText(String.valueOf(count));
}
/*
* Set the adapter to show the list
* First parameter specifies the cursor of rows to be shown in ListView
* Second one specifies columns
*/
protected void showList(final Cursor SrhRet, String[] from) {
int[] to = new int[]{R.id.entry, R.id.detail};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.listitem, SrhRet, from, to,
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
mListView.setAdapter(adapter);
setCount(mListView.getCount());
mListView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Build the Intent used to open WordActivity with a specific word Uri
Intent wordIntent = new Intent(getApplicationContext(), WordActivity.class);
Uri data = Uri.withAppendedPath(DictionaryProvider.ENTRY_CONTENT_URI,
String.valueOf(id));
wordIntent.setData(data);
//Required by the update
SrhRet.close();
mSrhHelper.updateHist(id);
startActivity(wordIntent);
}
});
}
Dies sind Funktionen, die eine Eingabe in durchsuchbar behandelt. Ich habe alle beteiligten Variablen ausfindig gemacht, aber kaum etwas Abnormales gefunden. Aber jedes Mal, wenn ich diese Funktion ausprobiere, zeigt der TextView die richtigen Zahlen, die ListView enthalten sollte! Diese Funktionen funktionierten perfekt vorher und ich habe eine andere Aktivität, die von dieser abgeleitet wird, ruft diese Funktionen auf, die auch gut funktionieren.
Ich benutze listitem.xml als Inhalt in Listview Stück:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/entry"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="17dp" />
<TextView
android:id="@+id/detail"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
Und mein result.xml. Ich habe die Ausrichtung überprüft.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/wrdCount"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
<ListView
android:id="@+id/wrdList"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
Vielen Dank für Hilfe im Voraus!
Allgemeine Informationen, verwenden Sie fill_parent anstelle von match_parent. match_parent wird heutzutage nicht mehr verwendet und verursacht in einigen APIs Fehler. Versuchen Sie auch Cursor ShrRet eine globale Variable zu machen – Shubhayu
@Shubhayu Ich entwickelte unter api15, also glaube ich nicht, dass dies eine Rolle spielt. Und ich habe es versucht. Es funktioniert auch nicht. – Hypeboyz
Gibt es irgendwelche Fehler oder sehen Sie nur eine leere Liste? – Shubhayu