2011-12-07 14 views
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は必要ありません。

フォーラムありがとうございます。

+0

、これを試してみてください?ListViewActivityアクティビティを削除 – user370305

+0

最初のアクティビティ(メインアクティビティ)。アプリケーションの開始時と同じです。 – user1028408

+0

ListViewActivityアクティビティを使用する必要はありません。主なアクティビティでlistview自体を使用することができます。私が与えたコードを使用して、何が起こったのか教えてください。 – user370305

答えて

0

ちょうど私が下記の活動を使用し、

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); 
     // 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); 

     lv.setListAdapter(new Adapter(ctx, R.layout.list_item, options, icons)); 

    } 

    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; 
    } 

} 

がOption2Activity活動の使用は何ですか

関連する問題