テキストビューのフォントを変更する行を追加して MyKong のコードを変更しようとしていますが、実行しようとすると強制的に閉じられます。
これが MobileArrayAdapter.java です
> package com.mkyong.android.adaptor;
>
> import com.mkyong.android.R;
>
> import android.content.Context; import
> android.content.res.AssetManager; import android.graphics.Color;
> import android.graphics.Typeface; import android.view.LayoutInflater;
> import android.view.View; import android.view.ViewGroup; import
> android.widget.ArrayAdapter; import android.widget.ImageView; import
> android.widget.TextView;
>
> public class MobileArrayAdapter extends ArrayAdapter<String> {
> private final Context context; private final String[] values;
>
> public MobileArrayAdapter(Context context, String[] values) {
> super(context, R.layout.list_mobile, values); this.context =
> context; this.values = values; }
>
> @Override public View getView(int position, View convertView,
> ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)
> context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View
> rowView = inflater.inflate(R.layout.list_mobile, parent, false);
> TextView textView = (TextView) rowView.findViewById(R.id.label);
> ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);
> // Here starts my modify
> Context context1 = null;
> AssetManager assetManager = context1.getResources().getAssets(); Typeface typeface = Typeface.createFromAsset(assetManager,
> "fonts/principale.ttf"); textView.setTextColor(Color.RED);
> textView.setTypeface(typeface); // Here ends
> textView.setText(values[position]);
>
> // Change icon based on name String s = values[position];
>
> System.out.println(s);
>
> if (s.equals("WindowsMobile")) {
> imageView.setImageResource(R.drawable.windowsmobile_logo); } else
> if (s.equals("iOS")) {
> imageView.setImageResource(R.drawable.ios_logo); } else if
> (s.equals("Blackberry")) {
> imageView.setImageResource(R.drawable.blackberry_logo); } else {
> imageView.setImageResource(R.drawable.android_logo); }
>
> return rowView; } }
ここで ListMobileActivity.java
package com.mkyong.android;
import com.mkyong.android.adaptor.MobileArrayAdapter;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.view.View;
public class ListMobileActivity extends ListActivity {
static final String[] MOBILE_OS = new String[] { "Android", "iOS",
"WindowsMobile", "Blackberry"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new MobileArrayAdapter(this, MOBILE_OS));
}
}
そしてここに list_mobile.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp" >
<ImageView
android:id="@+id/logo"
android:layout_width="50px"
android:layout_height="50px"
android:layout_marginLeft="5px"
android:layout_marginRight="20px"
android:layout_marginTop="5px"
android:src="@drawable/windowsmobile_logo" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="30px" >
</TextView>
</LinearLayout>
今、私は多くの質問をしていることを知っていますが、どうすれば解決できますか? カスタム アダプタからフォントを変更する正しい方法は何ですか? 返信ありがとうございます。