3

私はAndroidが初めてで、カスタムアダプターを作成して、各行に画像とその横にいくつかの情報を保持したいのですが、textFieldも配置したいのですが、使用できません。本来あるべき姿で表示されますが、触ってもソフトキーボードが開きません。私の推測では、要求されたフォーカスが得られないのではないでしょうか。行方不明です。お時間をいただきありがとうございます。

<?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="?android:attr/listPreferredItemHeight"
    android:padding="6dip"
    android:descendantFocusability="blocksDescendants" >

<ImageView
    android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_marginRight="6dip"
    android:src="@drawable/std" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/padding_small"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name" />



    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="45dp"
        android:text="TextView"
        android:textSize="10dp" />

</LinearLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/padding_small"
    android:orientation="horizontal" >



    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Grade" />





<EditText
    android:id="@+id/txtPassword"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword" >

</EditText>

</LinearLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/padding_small"
    android:orientation="horizontal" >



    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Comment" />










    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="25dp"
        android:textSize="10dp" />

</LinearLayout>


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/padding_small"
            android:orientation="horizontal" >



    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Present" />


    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp" />

</LinearLayout>

それが私の getView メソッドです

    public View getView(final int position, View convertView, ViewGroup parent) {


    convertView=null;


    ViewHolder holder;

    if (convertView == null) {

        convertView = mInflater.inflate(com.example.myapp.R.layout.rw, null);           

        TextView tt = (TextView) convertView.findViewById(mIds[1]);
        TextView bt = (TextView) convertView.findViewById(mIds[0]);
        TextView btt = (TextView) convertView.findViewById(mIds[2]);
        EditText bttt = (EditText) convertView.findViewById(mIds[3]);
        TextView a = (TextView) convertView.findViewById(mIds[4]);
        TextView av= (TextView) convertView.findViewById(mIds[5]);
        TextView avt= (TextView) convertView.findViewById(mIds[6]);
        CheckBox check = (CheckBox) convertView.findViewById(mIds[7]);


        if (tt != null) {
              tt.setText(mContent.get(position));
              tt.setTextColor(Color.RED);
       }
        if(bt != null){
              bt.setText("Name: ");
              bt.setTextColor(Color.BLUE);
        }
        if(btt != null){
              btt.setText("Grade:");
              btt.setTextColor(Color.BLUE);
        }
        if(a != null){
          a.setText("Comments:"); 
          a.setTextColor(Color.BLUE);
      }
      if(av != null){
          av.setText("..."); 
          av.setTextColor(Color.RED);
      }
      if(avt != null){
          avt.setText("Present:"); 
          avt.setTextColor(Color.BLUE);
      }

      holder = new ViewHolder(tt);

          ((CheckBox)convertView.findViewById(mIds[7])).setOnCheckedChangeListener(new
              onCheckedChangeListener() { 

            public void onCheckedChanged(CompoundButton buttonView, 
                                                    boolean isChecked) { 
              // TODO Auto-generated method stub 
              if (buttonView.isChecked()) { 
                  checkModel.get(position).status=true;
              } 

            }
           });


    }else {

    holder = (ViewHolder) convertView.getTag();

     }   



       ((CheckBox)convertView.findViewById(mIds[7])).setChecked(checkModel.get(position).status);
     ((EditText) convertView.findViewById(mIds[3])).setText("lalla");

         return convertView;
     }
4

2 に答える 2

1

私は、アンドロイドはクリックをListViewあなたのTextView. コンポーネント以外のこれらの設定を微調整してみてくださいEditText

android:focusable="false"
android:focusableInTouchMode="false"

または試す

android:focusable="true"
android:focusableInTouchMode="true"

あなたのためにEditText

そして、なぜそんなに多くの LinearLayouts があるのですか、それをRelativeLayoutに置き換えてみてください

于 2012-10-22T14:16:24.037 に答える
1

textview の横に画像を保持するには、 のコードで次の操作を行いますonCreate()

          phoneno.setCompoundDrawablesWithIntrinsicBounds(null, null, getResources().getDrawable(android.R.drawable.sym_action_call), null);
于 2012-10-22T13:56:07.130 に答える