ListView を使用するのはこれが初めてで、これを実行可能にするために多くの方法を試しました。最初に、xml ファイル内で「android:entries」を文字列配列で指定するために使用しましたが、表示されましたが、onClickListener をアクティブにできませんでした。他の方法は私が持っているものと似ていて、代わりに「extend Acitvity」を使用したものもありました. 助けてくれてありがとう。
基本的に、リストの項目ごとにカスタマイズされた textView 行を使用し、クリック可能な行ごとにトーストを表示したいと考えています。私の問題は、このアクティビティを表示しようとするとアプリケーションがクラッシュすることです。構文エラーがないため、どこに問題があるのか わかりません。エラーメッセージは次のとおりです(申し訳ありませんが、写真を配置しますが、できません-新しいユーザー):
- 致命的な例外: メイン
- java.lang.RuntimeException: アクティビティ ComponentInfo(edu.....) を開始できません
- Android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2202) で
- Android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2237) で
- android.app.ActivityThread.access$600 で (ActivityTHread.java:139)
- android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) で
- android.os.Handler.dispatchMessage(Handler.java:99) で
- android.os.Looper.loop(Loooper.java:154)
- Android.app.ActivityThread.main (ActivityThread.java:4974) で
- java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で
- java.lang.reflect.Method.invoke (メソッド java:511) で
- com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) で
- com.android.internal.os.ZygoteInit.main (ZygotaInit.java:551) で
- dalvik.system.NativeStart.main (ネイティブ メソッド) で
- 原因:java.lang.UnsupportedOperationException: addView(View, LayoutParams)...
- android.widget.AdapterView.addView(AdapterView.java:471) で
- android.view.LayoutInflater.rInflate(LayoutInflater.java:743) で
- android.view.LayoutInflater.rInflate(LayoutInflater.java:742) で
- android.view.LayoutInflater.rInflate(LayoutInflater.java:489) で
- android.view.LayoutInflater.rInflate(LayoutInflater.java:396) で
- android.view.LayoutInflater.rInflate(LayoutInflater.java:352) で
- com.android.internal.policy.impl.PhoneWindows.setContentView(PhoneWindow.java ...) で
- android.app.Activity.setContentView(Activity.java:1892) で
- edu.nyp.wonderful.Menu.onCreate (Menu.java:14) で
- android.app.Activity.performCreate(Activity.java:4538) で
- android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1071) で
- Android.app.ActivityThread.performLaunchActivity (ActivityTHread.java:2158) で
- ... あと 11 行 ( 入力するためにこれ以上は表示できません )
Menu.java v
package edu.nyp.wonderful;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class Menu extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
Log.d("Menu:", "after set content view");
String[] items = { "Set Pins", "View Pins", "List of Pins", "Email Summary", "Edit Session's Info" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.menu_row, R.id.menu_name, items);
setListAdapter(adapter);
Log.d("Menu:", "after setting adapter");
}
protected void onListItemClick(ListView l, View v, int position, long id){
super.onListItemClick(l, v, position, id);
Toast.makeText(getApplicationContext(), "Clicked position: " + position, Toast.LENGTH_SHORT).show();
}
}
menu.xml v
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="10dp" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="54dp"
android:layout_height="60dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:src="@drawable/logo" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Menu"
android:textColor="#DC1700"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_marginTop="30dp"
android:textSize="25sp"
android:typeface="serif" />
</LinearLayout>
<View android:id="@+id/separator1"
android:background="#000000"
android:layout_width = "fill_parent"
android:layout_height="1dp"
android:layout_marginBottom="10dp" />
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#000000"
android:dividerHeight="1dp" >
<TextView android:id="@+id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="nothing" />
</ListView>
</LinearLayout>
* menu_row.xml v*
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="23dp"
android:shadowRadius="5"
android:shadowColor="#000000"
android:shadowDy="3"
android:shadowDx="3"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp" />