0

レイアウトを変更する必要があるいずれかを選択すると、2 つのオプション ボタンが表示されるダイアログ ボックスを 1 つ開いています。

ここに画像の説明を入力

現在、下にあるlist.xmlファイルがあり、2つの線形レイアウトがあります

英語 (英語-テルグ語リスト) 英単語を最初に表示し、次にテルグ語を表示

      <LinearLayout
    android:id="@+id/engRowOfList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="50dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/txtEng"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="10dp"
        android:textColor="#000000"
        android:textSize="22dip"
        android:textStyle="bold" />

    <com....TextView
        android:id="@+id/txtGuj"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="10dp"
        android:textColor="@color/orange"
        android:textSize="22dip"
        android:textStyle="bold"
        lht:ttf_name="fonts/telugu.ttf" />
</LinearLayout>

テルグ語 (そのテルグ語の単語が最初に表示され、次に英語の単語が表示されます

 <LinearLayout
    android:id="@+id/teluguRowOfList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="50dp"
    android:orientation="vertical" >

    <com......GujTextView
        android:id="@+id/txtEng"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="10dp"
        android:textColor="#000000"
        android:textSize="22dip"
        android:textStyle="bold"
        lht:ttf_name="fonts/telugu.ttf" />

    <TextView
        android:id="@+id/txtGuj"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="10dp"
        android:textColor="@color/orange"
        android:textSize="22dip"
        android:textStyle="bold" />
</LinearLayout>

多くの人が LinearLayout.GONE/LinearLayout.VISIBLE でできることを示唆しているので、以下のコードで試しましたが、以下のコードではまだできません

   scAdapter = new SimpleCursorAdapter(getApplicationContext(),
            R.layout.list, cursor, new String[] { Const.ENGLISH,
                    Const.TELUGU }, new int[] { R.id.txtEng,
                    R.id.txtTelugu });

    scAdapter.setViewBinder(new ViewBinder() {

        public boolean setViewValue(View view,
                android.database.Cursor cursor, int columnIndex) {

            engListView = (LinearLayout) view.findViewById(R.id.engList);
            teluguListView = (LinearLayout) view.findViewById(R.id.teluguList);

            if (flagEnFl) { //flag for ENGLISH / TELUGU 
                engListView.setVisibility(LinearLayout.GONE);  ***//HERE I AM GETTING NULLPOINTEREXCEPTION EVERY TIME***
                teluguListView.setVisibility(LinearLayout.VISIBLE);
            } else {
                engListView.setVisibility(LinearLayout.VISIBLE);
                teluguListView.setVisibility(LinearLayout.GONE);
            }

この状況に対処する方法を教えてください。

4

4 に答える 4

0

シンプルなソリューション

次のように両方のレイアウトを1つに結合してから、それらを作成しVISIBLEGONE

<LinearLayout>
    <LinearLayout
     android:id="@+id/englishLayour>

    </LinearLayout>
   <LinearLayout
     android:id="@+id/englishLayour>

   </LinearLayout>

</LinearLayout>


radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if(checkedId==R.id.radioEnglish);
            {
                  englishLayout.setVisibility(View.VISIBLE);
                  tamilLayout.setVisibility(View.GONE);

            }else{
                  englishLayout.setVisibility(View.GONE);
                  tamilLayout.setVisibility(View.VISIBLE);              
            }
    });
于 2013-09-13T06:55:58.213 に答える
0

2 つのレイアウト ファイルを 1 つにマージします。最初に表示されるべきではないビューを非表示にします。ユーザーがダイアログから選択すると、ダイアログが非表示になり、目的のビューが表示されます。

于 2013-09-13T06:47:46.897 に答える