0

setContentView を使用してリストビューを開始するアクティビティがあり、If-Else 条件があります。ステートメントのIf部分では、simpleAdapter を使用して、リストビューに新しいレイアウトを配置し、カーソルから他のデータを配置します。Else部分では、情報を提供するためにラベルに文を入れたいだけです。どうやってやるの?パラメータとテキストビューを試しましたが、うまくいきませんでした。別の setcontentView を配置しようとしましたが、どちらも機能しません。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);

doMySearch() は、ユーザーが入力したキーワードに基づいてデータベースからデータを抽出するカーソルです。

public void onPostExecute() {
SimpleCursorAdapter adapter;
Int count = doMysearch().getCount;
If (count >= 1){
adapter=new SimpleCursorAdapter(this, R.layout.activity_results,
doMySearch(), new String[] {  
    DB.COL_NAME,
    DB.COL_CITY },
    new int[] { R.id.lblName, R.id.lblCity },
    0);

setListAdapter(adapter);
}
Else {
}

Else部分に「データが見つかりません」という文が欲しいだけです。ありがとう。

4

2 に答える 2

1

あなたが何を求めているのかは私には明確ではありませんが、ここに行きます。

空のリストの ListView には空のビュー設定があります。現在のレイアウトに別の空のビューを追加する必要があります。次に、以下のようなコードで空のビュー レイアウトを設定します。

//add to your layout
<LinearLayout
        android:id="@+id/empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="There is no item" >
    </TextView>

</LinearLayout>


//set empty view
ListView listView = (ListView) container.findViewById(R.id.list);
LinearLayout emptyView = (LinearLayout) container.findViewById(R.id.empty);
listView.setEmptyView(emptyView);
于 2013-06-26T08:53:54.993 に答える
0

私の知る限り、リストビューのせいでラベルが表示されませんよね?

編集: わかりました。シンプルにするために、 ListView を非表示にしてから、既にエラー文字列を保持してmyList.setVisibility(View.GONE); いる既製の Label を表示することができます。myLabel.setVisibility(View.VISIBLE)

(たとえば)strings.xmlのように、StringArrayを作成するより難しい方法

<string-array name="error">
        <item>No results found</item>
</string-array>

次に、else-block で次のように考えることができます。

ListView lv = (ListView) findViewById(R.id.myList); 
String[] content = getResources().getStringArray(R.array.error); 
ArrayAdapter<String> typeList = new ArrayAdapter<String>(this, R.layout.simple_list_item_custom, content);
lv.setAdapter(typeList);
于 2013-06-26T08:51:19.367 に答える