私のアプリケーションでは、チェックボックスとテキストビューが一列に並んだリストビューと、画面の下部にボタンがあります。ユーザーがボタンをクリックすると、リストビューで選択した項目を配列で取得する必要があります..私はこれを試しました
私の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">
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/testbutton"
android:text="OK" android:layout_alignParentBottom="true" />
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/listforSetting"
android:layout_alignParentTop="true" android:layout_above="@id/testbutton" />
</RelativeLayout>
私の活動:
String[] item = common.context.getInstance().getCategoryitem();
String[] name;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listforsetting);
final ListView lView = (ListView) findViewById(R.id.listforSetting);
Button b=(Button)findViewById(R.id.testbutton);
lView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, item));
lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SparseBooleanArray checked = lView.getCheckedItemPositions();
for (int i = 0; i < item.length; i++){
if (checked.get(i))
{
name[i]=lView.getItemAtPosition(i).toString();
System.out.println("item="+name[i]);
}
}
}
});
しかし、それはnullポインタ例外として表示されています(ボタンをクリックしたとき)..これを解決するのを手伝ってください.
私のlogcat:
01-01 12:17:20.817: E/AndroidRuntime(584): Uncaught handler: thread main exiting due to uncaught exception
01-01 12:17:20.847: E/AndroidRuntime(584): java.lang.NullPointerException
01-01 12:17:20.847: E/AndroidRuntime(584): at com.newspaper.ListforSetting$1.onClick(ListforSetting.java:39)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.View.performClick(View.java:2364)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.View.onTouchEvent(View.java:4179)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.widget.TextView.onTouchEvent(TextView.java:6541)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.View.dispatchTouchEvent(View.java:3709)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
01-01 12:17:20.847: E/AndroidRuntime(584): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
01-01 12:17:20.847: E/AndroidRuntime(584): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
01-01 12:17:20.847: E/AndroidRuntime(584): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.os.Looper.loop(Looper.java:123)
01-01 12:17:20.847: E/AndroidRuntime(584): at android.app.ActivityThread.main(ActivityThread.java:4363)
01-01 12:17:20.847: E/AndroidRuntime(584): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 12:17:20.847: E/AndroidRuntime(584): at java.lang.reflect.Method.invoke(Method.java:521)
01-01 12:17:20.847: E/AndroidRuntime(584): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-01 12:17:20.847: E/AndroidRuntime(584): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-01 12:17:20.847: E/AndroidRuntime(584): at dalvik.system.NativeStart.main(Native Method)