0

私は数日前にこれについて検索しましたが、残念ながら私の問題に対する答えを見つけることができませんでした。私は現在Androidプロジェクトに取り組んでおり、ボタンをクリックすると、文字列配列リソースのアイテムのリストビューを含むダイアログボックスが表示されます。ありがとうございます。

これが私の文字列配列です:

<string-array name="heart_attacks_and_shock">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>

これが私のコードです:

import java.util.ArrayList;
import com.sap.BSMA.R.string;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;

@SuppressLint("ParserError")
public class FirstaidActivity extends Activity {
Resources res = getResources();
String[] has = res.getStringArray(R.array.heart_attacks_and_shock);

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.firstaid_layout);

    ImageButton has_button = (ImageButton) findViewById(R.id.HAS);
    has_button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
            //set up dialog
            Dialog dialog = new Dialog(FirstaidActivity.this);
            dialog.setContentView(R.layout.firstaidcategoryoutput_layout);
            dialog.setTitle("Heart attack and shock");
            dialog.setCancelable(true);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,has); 
            setListAdapter(adapter);

            dialog.show();
        }
    });
}
}

ポップアップウィンドウの私のxml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@drawable/mainbackground">


<ListView
android:id="@+id/listExample"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CCCCCC"
android:choiceMode="singleChoice"
 />

</RelativeLayout>
4

3 に答える 3

2

これを追加

Dialog dialog = new Dialog(FirstaidActivity.this);
        dialog.setContentView(R.layout.firstaidcategoryoutput_layout);
ListView list = (ListView)dialog.findViewById(R.id.listExample);
        dialog.setTitle("Heart attack and shock");
        dialog.setCancelable(true);
        ArrayAdapter<String> adapter = new ArrayAdapter<String> (FirstaidActivity.this,android.R.layout.simple_list_item_1,has); 
        list.setAdapter(adapter);

        dialog.show();
于 2012-11-06T09:14:15.363 に答える
0

変更してみてください:

android:id="@+id/listExample"

android:id="@android:id/list"
于 2012-08-08T19:44:44.830 に答える
0

問題の1つは、使用している「this」オブジェクトがonclickメソッド内の間違ったものを参照していることです。これの代わりにFirstaidactivity.thisを試して、アクティビティのコンテキストを取得してください

2番目の問題は、クラスがListActivityを拡張しない限り、メソッド内でsetListAdapterを使用できないことです。listExampleへの参照を取得してから、list.setAdapter(adapter)を実行する必要があります。

于 2012-08-08T19:42:41.430 に答える