0

私はアンドロイドが初めてです.今日私がしようとしているのは、リストビューのデータを最初の行に3つのテキストビュー、2番目に2つのテキストビュー、最後に1つのテキストビューとして表示することです.このために、コードでこれを試しました助けてくださいアウト 。

すべてのリストビューで3行のテキストビューを表示できますが、 3 2 1 テキストビューとしては表示できません。これの方法を教えてください。私の主な活動で私を助けてください

ListView lview3;  
 ListView3Activity adapter;  

    private static String month[] = {"January","February","March","April","May",  
        "June","July","August","September",  
        "October","November","December"};  

    private static String desc[] = {"Month - 1","Month - 2","Month - 3",  
        "Month - 4","Month - 5","Month - 6","Month - 7",  
        "Month - 8","Month - 9","Month - 10","Month - 11","Month - 12"};  
    private static String details[] = {"Month - 1","Month - 2","Month - 3",  
        "Month - 4","Month - 5","Month - 6","Month - 7",  
        "Month - 8","Month - 9","Month - 10","Month - 11","Month - 12"};  


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

    lview3 = (ListView) findViewById(R.id.listView1);  
    adapter = new ListView3Activity(this, month, desc,details);  
    lview3.setAdapter(adapter);  

    lview3.setOnItemClickListener(this);  
}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
    // TODO Auto-generated method stub
    Toast.makeText(this, "Title => "+month[position]+" n Description => "+desc[position], Toast.LENGTH_SHORT).show();  

}

}

listView3Activity は次のとおりです

4

2 に答える 2

0

以下のスクリーンショットに示すような機能が必要ですか?

機能例

はいの場合、これは多くの方法で可能です。そのうちの1つが以下のとおりです。

  1. 3 つの textFields を使用して、ListView 内の項目のレイアウト ファイルを定義します。(提供されたアプローチでは、list_item_layout.xml を作成しました。詳細については、これを参照してください)
  2. 必要に応じて listview のアダプターにデータを提供します (たとえば、UserRecord 型の arrayList と context を引数として受け取るカスタム アダプターを作成しました)。
  3. UserRecord は、リストビュー項目に表示される 3 つの文字列を持つ単なるクラスです。
  4. アダプターをリストビューに設定します。
  5. 詳細については、コードを参照してください。コードは一目瞭然です。

Main.xml

<?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" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/sendNotification"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SendNotification" />

    <ListView
        android:id="@+id/MyList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

list_item_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_height="wrap_content" 
   android:gravity="left|center"
   android:layout_width="wrap_content" 
   android:paddingBottom="5px"
   android:paddingTop="5px" 
   android:paddingLeft="5px">

    <ImageView
       android:id="@+id/avatar"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_marginRight="6dip"
       android:src="@drawable/ic_launcher" />
    <LinearLayout
       android:orientation="vertical"
       android:layout_width="0dip"
       android:layout_weight="1"
       android:layout_height="fill_parent">

        <TextView android:id="@+id/username"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:gravity="center"/>

        <TextView android:id="@+id/middlename" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/>

        <TextView android:id="@+id/lastname" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 
    </LinearLayout>
</LinearLayout>

listView 用のカスタム アダプター (CustomAdapter.java)

import java.util.ArrayList;

import com.main.UserRecord;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class CustomAdapter extends BaseAdapter {

    private ArrayList<UserRecord> _data;
    Context _c;
    CustomAdapter (ArrayList<UserRecord> data, Context c){
        _data = data;
        _c = c;
    }
    /* (non-Javadoc)
     * @see android.widget.Adapter#getCount()
     */
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return _data.size();
    }

    /* (non-Javadoc)
     * @see android.widget.Adapter#getItem(int)
     */
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return _data.get(position);
    }

    /* (non-Javadoc)
     * @see android.widget.Adapter#getItemId(int)
     */
    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    /* (non-Javadoc)
     * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
         View v = convertView;
         if (v == null) 
         {
            LayoutInflater vi = (LayoutInflater)_c.getSystemService(_c.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.list_item_layout, null);

           TextView username = (TextView)v.findViewById(R.id.username);
           TextView middlename = (TextView)v.findViewById(R.id.middlename);
           TextView lastname = (TextView)v.findViewById(R.id.lastname);

           UserRecord user = _data.get(position);
           username.setText(user.userName);
           middlename.setText(user.middleName);
           lastname.setText(user.lastName);
         }
        return v;    
    }

}

UserRecord.java

package com.main;

public class UserRecord {
    public String userName;
    public String middleName;
    public String lastName;

    public UserRecord(String username, String middleName,String lastName) {
        this.userName = username;
        this.middleName = middleName;
        this.lastName = lastName;
    }
}
于 2012-04-24T06:50:32.907 に答える
0

同じ種類の質問を参照してください。

あなたの場合、必要なレイアウトを含む新しいxmlファイルを作成する必要があります。次に、そのレイアウトを新しいリスト項目ごとにビューとして渡します。例に示されているように、データ配列を d として渡します。

于 2012-04-23T11:30:30.953 に答える