2013-09-13 5 views
0

Я открываю один диалоговое окно, в том, что есть две кнопок вариант, когда я выбрать любого из одного макета следует изменить ниже снимок экранаИзменения макета во время выполнения нулевого указателя ИСКЛЮЧЕНИЯ

enter image description here

теперь есть list.xml файлов, которые ниже и в том, что есть две линейные раскладка

английский (который список английский-телугу) английский дисплей слово первое, то телугу слово

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

может любое тело помочь мне, как справиться с этой ситуацией

+0

Почему вы не создаете только один макет и не изменяете содержание текстовых просмотров, когда пользователь выбирает любую опцию. –

+0

Но Armaan, когда я меняю содержимое текстового поля (текст на английском не отображается правильно, например, когда я выбираю «@ + id/txtGuj ", и в этом случае, когда я размещаю текст на английском языке, текст текста не будет отображаться должным образом: (* –

+0

может быть его, потому что вы использовали шрифты ttf для telugu. поэтому я думаю, что вам нужно изменить шрифты во время выполнения в соответствии с выбором опции. –

ответ

0

Объединить два файла макета в один. Скрыть виды, которые не должны отображаться во-первых. Когда пользователь выбирает диалоговое окно, скрывает диалоговое окно и показывает желаемый вид.

+0

Thank вы так много для вашего приятного ответа таким образом также я могу сделать спасибо :) –

0

Простое решение

Объединить оба макета в одном следующим образом затем сделать их VISIBLE и GONE

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

Попробуйте это:

включить этот подкласс в своей деятельности:

public class Typefaces{ 

     private final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>(); 

      public Typeface get(Context c, String name){ 
       synchronized(cache){ 
        if(!cache.containsKey(name)){ 
         Typeface t = Typeface.createFromAsset(
           c.getAssets(), 
           String.format("fonts/%s.ttf", name) 
          ); 
         cache.put(name, t); 
        } 
        return cache.get(name); 
       } 
      } 

     } 

Затем выполните следующее:

Typefaces tf = new Typefaces(); 

tvMessage.setTypeface(tf.get(context, "shruti")); 

Не забудьте добавить .ttf файлы в к/папке активов шрифтов в вашем проекте. (Создавать шрифты папку, если его нет.). а также имя файла шрифта должно быть маленьким. в папке и в классе.

Надеюсь, что это поможет!

0

Невозможно переключиться на макеты 2 рабочего времени. Лучшее решение - разместить 2 разных LinearLayout внутри одного и того же макета и переключить (View.VISIBLE/View.GONE) видимость их, когда пользователи принимают решение.

Смежные вопросы