我打开一个对话框,当我选择任何一个时,有两个选项按钮,下面的布局应该是屏幕截图
现在有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>
telugu(在那个telugu字首先显示,然后显示英文单词
<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)
将两个布局文件合并为一个。隐藏不应首先显示的视图。 当用户从对话框中选择时,隐藏对话框并显示所需的视图。
答案 1 :(得分: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);
}
});
答案 2 :(得分: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文件添加到项目的asset / fonts文件夹中。(如果没有,请创建fonts文件夹。)。而且字体文件名也应该是小型的。在文件夹和课堂上。
希望它能帮助!!
答案 3 :(得分:0)
无法在运行时2布局中切换。最好的解决方案是在同一布局中放置2个不同的LinearLayout,并在用户做出决定时切换(View.VISIBLE / View.GONE)它们的可见性。