0

連絡先の名前を表示しているリストビューがあります。リストビューに関連付けられている値は他にもあります。リストビューの行を押すと、Hashmap を他のアクティビティに送信し、HashMap のサイズに基づいて TextView を動的に作成し、Name、Email、PhoneNo などの動的に作成されたテキストビューに値を割り当てます。

listview.OnItemClickListner

mListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View view, int position,
                long id) {
            // TODO Auto-generated method stub          
            @SuppressWarnings("unchecked")
            HashMap<String, String> o = (HashMap<String, String>) mListView.getItemAtPosition(position);
            Intent i = new Intent (Contacts.this , Contacts_Detail.class);
            i.putExtra("HASHMAP", o);
            startActivity(i);


        }
    });

連絡先詳細クラス

public class Contacts_Detail extends Activity {

LinearLayout mLinearlayout;
TextView rowTextView;
HashMap<String, String> ModuleName;
ArrayList<String> KEY;
List<TextView> allTxts;
private LayoutInflater inflater;
View layout;
@SuppressWarnings("unchecked")
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    mLinearlayout = (LinearLayout) findViewById(R.id.LinearLayout);

    Bundle extras = getIntent().getExtras();

    if (extras != null)  
    {
        //map = HashMap<String, String>>getIntent().getSerializableExtra("MODULE_LIST");
        ModuleName = (HashMap<String, String>) extras.getSerializable("HASHMAP");
        //KEY = (ArrayList<String>) extras.getSerializable("KEY");
    }
    else 
    { 
        Toast.makeText(getApplicationContext(), "No Data Found", Toast.LENGTH_LONG).show();
        return;

    } 

    int N = ModuleName.size(); // total number of textviews to add
    final TextView[] myTextViews = new TextView[N]; // create an empty array;
    allTxts = new ArrayList<TextView>();

    for (int i = 0; i < N; i++) {
        // create a new textview
        rowTextView = new TextView(this);
        allTxts.add(rowTextView);
        // set some properties of rowTextView or something
       rowTextView.setText("This is TextView #" + i);
        rowTextView.setId(i); 
        // add the textview to the linearlayout
        mLinearlayout.addView(rowTextView);

        // save a reference to the textview for later
        myTextViews[i] = rowTextView;
    }           

}}

スクリーンホット ご覧のとおり、すべてのテキストビューが正常に作成されていますが、動的に作成されたすべてのテキストビューに HASHMAP 値を割り当てたいと考えています。これを達成する方法。

そのためにレイアウトインフレータの概念を使用できますか。?

前もって感謝します

4

2 に答える 2