0
私はリストビューを使用しようとしています。私はリストビューを作成しようとしています。しかし、それは新しい画面で自分自身を作成します。メインメニュー(main.xmlで定義)で既に作成されたリストビューをどのように使用できるかを知りたい。作成したリストビューを利用しています。 Android
私のJavaコード:
public class Option2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent startNewActivityOpen = new Intent(Option2Activity.this, ListViewActivity.class);
startActivityForResult(startNewActivityOpen, 0);
}
}
public class ListViewActivity extends ListActivity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ListView lv = (ListView)findViewById(R.id.listview_main);
// Currently unused...
Context ctx = getApplicationContext();
Resources res = ctx.getResources();
String[] options = res.getStringArray(R.array.list_titles);
TypedArray icons = res.obtainTypedArray(R.array.list_icons);
setListAdapter(new Adapter(ctx, R.layout.list_item, options, icons));
//I tried using lv.setAdapter(new Adapter(ctx, R.layout.list_item, options, icons));
//but it didn't work. 'setListAdapter' is creating a new listview in another screen
}
}
public class Adapter extends ArrayAdapter<String> {
private LayoutInflater mInflater;
private String[] mStrings;
private TypedArray mIcons;
private int mViewResourceId;
public Adapter(Context ctx, int viewResourceId, String[] strings, TypedArray icons)
{
super(ctx, viewResourceId, strings);
mInflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mStrings = strings;
mIcons = icons;
mViewResourceId = viewResourceId;
}
@Override
public int getCount()
{
return mStrings.length;
}
@Override
public String getItem(int position)
{
return mStrings[position];
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
convertView = mInflater.inflate(mViewResourceId, null);
Button ib = (Button)convertView.findViewById(R.id.list_button);
ib.setText(mStrings[position]);
ib.setCompoundDrawables((mIcons.getDrawable(position)), null, null, null);
//this doesn't work either, it is supposed to set an image in the button
//if anyone knows how to help me I'd appreciate but it isn't the main issue
TextView tv = (TextView)convertView.findViewById(R.id.list_text);
tv.setText(mStrings[position]);
return convertView;
}
}
XML
Main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@drawable/newsimage" />
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:maxHeight="50dp"
android:maxWidth="50dp"
android:src="@drawable/newsimage" />
<TextView
android:id="@+id/textView1"
android:layout_marginTop="7dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true"
android:text="Option 2 Menu"
android:textSize="25dp" />
</RelativeLayout>
<ListView
android:id="@+id/listview_main"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/newspaper"
android:scaleType="fitXY"
/>
</LinearLayout>
list_item.xml
<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/list_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24dp"
android:padding="6dp"
/>
<Button
android:id="@+id/list_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
私は、これは、関連するすべてのコードだと思います。前もって感謝します。また、このコードの一部がフォーラムで検索した他の開発者から参照されていることも含めたいと思います。まさに最新のユーザーの回答のように
FIXED
public class Option2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView)findViewById(R.id.listview_main);
Context ctx = getApplicationContext();
Resources res = ctx.getResources();
String[] options = res.getStringArray(R.array.list_titles);
TypedArray icons = res.obtainTypedArray(R.array.list_icons);
lv.setAdapter(new Adapter(ctx, R.layout.list_item, options, icons));
}
}
ありません。しかし、それは働いた。 ListViewActivityは必要ありません。
フォーラムありがとうございます。
、これを試してみてください?
ListViewActivity
アクティビティを削除 – user370305最初のアクティビティ(メインアクティビティ)。アプリケーションの開始時と同じです。 – user1028408
ListViewActivityアクティビティを使用する必要はありません。主なアクティビティでlistview自体を使用することができます。私が与えたコードを使用して、何が起こったのか教えてください。 – user370305