2017-01-01 39 views
-3

我试图修改此活动文件时遇到问题我的意思是为此TextView添加自定义字体。我尝试了很多代码,它不适合我。希望我能通过这个问题找到解决办法。如何添加自定义字体此活动?

此我activty代码:

private ArrayList<SongInfo> items; 
private Context context; 
private ArrayList<ViewHolder> listHolder = new ArrayList<ListRingtonesAdapter.ViewHolder>(); 
private int curPosition = 0; 
private RingtonesSharedPreferences pref; 
private boolean inRingtones; 

static final String TAG = "LOG"; 

private static final int DEFAULT_RINGTONE = 1; 
private static final int ASSIGN_TO_CONTACT = 2; 
private static final int DEFAULT_NOTIFICATION = 3; 
private static final int DEFAULT_ALARM = 4; 
private static final int DELETE_RINGTONE = 5; 



public static final String ALARM_PATH = "/media/audio/alarms/"; 
public static final String ALARM_TYPE = "Alarm"; 
public static final String NOTIFICATION_PATH = "/media/audio/notifications/"; 
public static final String NOTIFICATION_TYPE = "Notification"; 
public static final String RINGTONE_PATH = "/media/audio/ringtones/"; 
public static final String RINGTONE_TYPE = "Ringtone"; 


public ListRingtonesAdapter(Context context, int viewResourceId, 
     ArrayList<SongInfo> objects, boolean inRingtones) { 
    super(context, viewResourceId, objects); 
    // TODO Auto-generated constructor stub 
    this.context = context; 
    this.items = objects; 
    this.pref = new RingtonesSharedPreferences(context); 
    this.inRingtones = inRingtones; 
    if(Main.mp.isPlaying()){ 
     Main.mp.stop(); 
    } 
} 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 

    ActionItem defRingtone = new ActionItem(DEFAULT_RINGTONE, 
      "Default Ringtone", context.getResources().getDrawable(
        R.drawable.icon_ringtone)); 
    ActionItem assign = new ActionItem(ASSIGN_TO_CONTACT, 
      "Contact Ringtone", context.getResources().getDrawable(
        R.drawable.icon_contact)); 
    ActionItem defNotifi = new ActionItem(DEFAULT_NOTIFICATION, 
      "Default Notification", context.getResources().getDrawable(
        R.drawable.icon_notify)); 
    ActionItem defAlarm = new ActionItem(DEFAULT_ALARM, "Default Alarm", 
      context.getResources().getDrawable(R.drawable.icon_alarm)); 


    final QuickAction mQuickAction = new QuickAction(context); 

    mQuickAction.addActionItem(defRingtone); 
    mQuickAction.addActionItem(assign); 
    mQuickAction.addActionItem(defNotifi); 
    mQuickAction.addActionItem(defAlarm); 


    // setup the action item click listener 
    mQuickAction 
      .setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() { 
       @Override 
       public void onItemClick(QuickAction quickAction, int pos, 
         int actionId) { 
        switch (actionId) { 
        case DEFAULT_RINGTONE: 
         setDefaultRingtone(items.get(curPosition)); 
         Toast.makeText(context, 
           "Ringtone set successfully", 
           Toast.LENGTH_LONG).show(); 
         break; 
        case ASSIGN_TO_CONTACT: 
         Intent intent = new Intent(context, 
           SelectContactActivity.class); 
         intent.putExtra("position", curPosition); 
         context.startActivity(intent); 
         break; 
        case DEFAULT_ALARM: 
         setDefaultAlarm(items.get(curPosition)); 
         Toast.makeText(context, 
           "Alarm set successfully", 
           Toast.LENGTH_LONG).show(); 
         break; 
        case DEFAULT_NOTIFICATION: 
         setDefaultNotice(items.get(curPosition)); 
         Toast.makeText(context, 
           "Notification set successfully", 
           Toast.LENGTH_LONG).show(); 
         break; 

        default: 
         break; 
        } 
       } 
      }); 

    // setup on dismiss listener, set the icon back to normal 
    mQuickAction.setOnDismissListener(new PopupWindow.OnDismissListener() { 
     @Override 
     public void onDismiss() { 
     } 
    }); 

    View view = null; 

    if (convertView == null) { 
     LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = li.inflate(R.layout.listelement, null); 
     final ViewHolder holder = new ViewHolder(); 
     holder.txtName = (TextView) view.findViewById(R.id.txtSongName); 
     holder.btnFavorite = (ImageView) view.findViewById(R.id.btnFavorite); 
     holder.btnPlayPause = (ImageView) view.findViewById(R.id.btnPlayPause); 
     view.setTag(holder); 
    } else { 
    } 

    final SongInfo item = items.get(position); 
    if (item != null) { 
     final ViewHolder holder = (ViewHolder) view.getTag(); 
     holder.txtName.setText(item.getName()); 
     if (item.isFavorite()) { 
      holder.btnFavorite.setBackgroundResource(R.drawable.icon_favorite); 
     } else { 
      holder.btnFavorite.setBackgroundResource(R.drawable.icon_favorite_off); 
     } 

     if (!item.isPlaying()) { 
      holder.btnPlayPause.setBackgroundResource(R.drawable.icon_play); 
     } else { 
      holder.btnPlayPause.setBackgroundResource(R.drawable.icon_pause); 
     } 

     holder.btnPlayPause.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       if (Main.mp.isPlaying()) { 
        Main.mp.stop(); 
       } 

       for(int i = 0; i < items.size(); i++){ 
        if(items.get(i) != item) 
         items.get(i).setPlaying(false); 
       } 
       for(int i = 0; i < listHolder.size(); i++){ 
        listHolder.get(i).btnPlayPause.setBackgroundResource(R.drawable.icon_play); 
       } 

       if (item.isPlaying()) { 
        holder.btnPlayPause.setBackgroundResource(R.drawable.icon_play); 
        item.setPlaying(false); 
        items.get(position).setPlaying(false); 
        if (Main.mp.isPlaying()) { 
         Main.mp.stop(); 
        } 

       } else { 
        curPosition = position; 
        playAudio(context, item.getAudioResource()); 

        holder.btnPlayPause.setBackgroundResource(R.drawable.icon_pause); 
        item.setPlaying(true); 
        items.get(position).setPlaying(true); 
       } 
       for (ViewHolder object : listHolder) { 
        if (object != holder) { 
         object.btnPlayPause.setBackgroundResource(R.drawable.icon_play); 
        } 
       } 
      } 
     }); 

     holder.btnFavorite.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (item.isFavorite()) { 
        holder.btnFavorite 
          .setBackgroundResource(R.drawable.icon_favorite_off); 
        item.setFavorite(false); 
        pref.setString(item.getFileName(), false); 
        if (!inRingtones) { 
         Intent broadcast = new Intent(); 
         broadcast.setAction("REMOVE_SONG"); 
         context.sendBroadcast(broadcast); 
        } 

       } else { 
        holder.btnFavorite 
          .setBackgroundResource(R.drawable.icon_favorite); 
        item.setFavorite(true); 
        pref.setString(item.getFileName(), true); 
       } 
      } 
     }); 

     listHolder.add(holder); 

     view.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       mQuickAction.show(v); 
       curPosition = position; 
      } 
     }); 
    } 

    return view; 
} 

private Object getAssets() { 
    // TODO Auto-generated method stub 
    return null; 
} 

private TextView findViewById(int txtsongname) { 
    // TODO Auto-generated method stub 
    return null; 
} 

static class ViewHolder { 
    private TextView txtName; 
    private ImageView btnFavorite; 
    private ImageView btnPlayPause; 
} 

private void playAudio(Context context, int id) { 
    if (Main.mp.isPlaying()) { 
     Main.mp.stop(); 
    } 
    Main.mp = MediaPlayer.create(context, id); 
    Main.mp.setOnCompletionListener(playCompletionListener); 
    Main.mp.start(); 
    onRingtonePlay.onPlay(); 
} 

private OnCompletionListener playCompletionListener = new OnCompletionListener() { 

    @Override 
    public void onCompletion(MediaPlayer mp) { 
     // TODO Auto-generated method stub 
     for(int i = 0; i < items.size(); i++){ 
      items.get(i).setPlaying(false); 
     } 
     for(int i = 0; i < listHolder.size(); i++){ 
      listHolder.get(i).btnPlayPause 
      .setBackgroundResource(R.drawable.icon_play); 
     } 
    } 
}; 

private void setRingtone(SongInfo info, boolean ringtone, boolean alarm, 
     boolean music, boolean notification) { 

    File dir = null; 
    String what = null; 
    if (ringtone) { 
     what = "Ringtones"; 
    }else if(alarm){ 
     what = "alarms"; 
    }else if(notification){ 
     what = "notifications"; 
    }else{ 
     what = "Ringtones"; 
    } 


    if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { 
     dir = new File(Environment.getExternalStorageDirectory(),what); 
    } else { 
     dir = context.getCacheDir(); 
    } 

    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 

    File file = new File(dir, info.getFileName()); 
    if (!file.exists()) { 
     try { 
      file.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     try { 

      InputStream inputStream = context.getResources() 
        .openRawResource(info.getAudioResource()); 

      OutputStream outputStream = new FileOutputStream(file); 

      byte[] buffer = new byte[1024]; 
      int length; 

      while ((length = inputStream.read(buffer)) > 0) { 
       outputStream.write(buffer, 0, length); 
      } 
      outputStream.flush(); 
      outputStream.close(); 
      inputStream.close(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 
    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); 

    Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath()); 

    String[] projection = new String[] { MediaStore.MediaColumns.DATA, 
      MediaStore.Audio.Media.IS_RINGTONE, 
      MediaStore.Audio.Media.IS_ALARM, 
      MediaStore.Audio.Media.IS_MUSIC, 
      MediaStore.Audio.Media.IS_NOTIFICATION 

    }; 
    Cursor c = context.getContentResolver().query(uri,projection,MediaStore.MediaColumns.DATA + " = \"" + file.getAbsolutePath()+ "\"", null, null); 

    String strRingtone = null, strAlarm = null, strNotifi = null, strMusic = null; 
    while (c.moveToNext()) { 
     strRingtone = c.getString(c 
       .getColumnIndex(MediaStore.Audio.Media.IS_RINGTONE)); 
     strAlarm = c.getString(c 
       .getColumnIndex(MediaStore.Audio.Media.IS_ALARM)); 
     strNotifi = c.getString(c 
       .getColumnIndex(MediaStore.Audio.Media.IS_NOTIFICATION)); 
     strMusic = c.getString(c 
       .getColumnIndex(MediaStore.Audio.Media.IS_MUSIC)); 
    } 

    if (ringtone) { 
     if ((strAlarm != null) && (strAlarm.equals("1"))) 
      alarm = true; 
     if ((strNotifi != null) && (strNotifi.equals("1"))) 
      notification = true; 
     if ((strMusic != null) && (strMusic.equals("1"))) 
      music = true; 

    } else if (notification) { 
     if ((strAlarm != null) && (strAlarm.equals("1"))) 
      alarm = true; 
     if ((strRingtone != null) && (strRingtone.equals("1"))) 
      ringtone = true; 
     if ((strMusic != null) && (strMusic.equals("1"))) 
      music = true; 

    } else if (alarm) { 
     if ((strNotifi != null) && (strNotifi.equals("1"))) 
      notification = true; 
     if ((strRingtone != null) && (strRingtone.equals("1"))) 
      ringtone = true; 
     if ((strMusic != null) && (strMusic.equals("1"))) 
      music = true; 

    } else if (music) { 
     if ((strNotifi != null) && (strNotifi.equals("1"))) 
      notification = true; 
     if ((strRingtone != null) && (strRingtone.equals("1"))) 
      ringtone = true; 
     if ((strAlarm != null) && (strAlarm.equals("1"))) 
      alarm = true; 
    } 

    ContentValues values = new ContentValues(); 
    values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
    values.put(MediaStore.MediaColumns.TITLE, info.getName()); 
    values.put(MediaStore.MediaColumns.SIZE, file.length()); 
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
    if (ringtone) { 
     values.put(MediaStore.Audio.Media.IS_RINGTONE, ringtone); 
    } else if (notification) { 
     values.put(MediaStore.Audio.Media.IS_NOTIFICATION, notification); 
    } else if (alarm) { 
     values.put(MediaStore.Audio.Media.IS_ALARM, alarm); 
    } else if (music) { 
     values.put(MediaStore.Audio.Media.IS_MUSIC, music); 
    } 

    context.getContentResolver().delete(uri,MediaStore.MediaColumns.DATA + " = \"" + file.getAbsolutePath() + "\"", null); 
    Uri newUri = context.getContentResolver().insert(uri, values); 

    int type = RingtoneManager.TYPE_ALL; 
    if (ringtone) 
     type = RingtoneManager.TYPE_RINGTONE; 
    if (alarm) 
     type = RingtoneManager.TYPE_ALARM; 
    if (notification) 
     type = RingtoneManager.TYPE_NOTIFICATION; 

    RingtoneManager.setActualDefaultRingtoneUri(context, type, newUri); 
} 

private void setDefaultRingtone(SongInfo info) { 

    File dir = null; 
    String what = "Ringtones"; 
    Uri newUri = null; 
    ContentValues values = new ContentValues(); 
    boolean isRingTone = false; 
    if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { 
     dir = new File(Environment.getExternalStorageDirectory(),what); 
    } else { 
     dir = context.getCacheDir(); 
    } 

    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 

    File file = new File(dir, info.getFileName()); 
    if (!file.exists()) { 
     try { 
      file.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     try { 

      InputStream inputStream = context.getResources() 
        .openRawResource(info.getAudioResource()); 

      OutputStream outputStream = new FileOutputStream(file); 

      byte[] buffer = new byte[1024]; 
      int length; 

      while ((length = inputStream.read(buffer)) > 0) { 
       outputStream.write(buffer, 0, length); 
      } 
      outputStream.flush(); 
      outputStream.close(); 
      inputStream.close(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 
    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); 

    String[] columns = { MediaStore.Audio.Media.DATA, 
      MediaStore.Audio.Media._ID, 
      MediaStore.Audio.Media.IS_RINGTONE 
      }; 

    Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, columns, MediaStore.Audio.Media.DATA+" = '"+file.getAbsolutePath()+"'",null, null); 
    if (cursor!=null) { 
     int idColumn = cursor.getColumnIndex(MediaStore.Audio.Media._ID); 
     int fileColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DATA); 

     int ringtoneColumn = cursor.getColumnIndex(MediaStore.Audio.Media.IS_RINGTONE); 
     while (cursor.moveToNext()) { 
      String audioFilePath = cursor.getString(fileColumn); 
      if (cursor.getString(ringtoneColumn)!=null && cursor.getString(ringtoneColumn).equals("1")) { 
       Uri hasUri = MediaStore.Audio.Media.getContentUriForPath(audioFilePath); 
       newUri = Uri.withAppendedPath(hasUri, cursor.getString(idColumn)); 
       isRingTone = true; 
      } 
     } 
     cursor.close(); 
    } 
    if (isRingTone) { 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, newUri); 
    }else{ 
     values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
     values.put(MediaStore.MediaColumns.TITLE, info.getName()); 
     values.put(MediaStore.MediaColumns.SIZE, file.length()); 
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
     values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
     newUri = context.getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values); 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, newUri); 
    } 
} 

private void setDefaultAlarm(SongInfo info) { 

    File dir = null; 
    String what = "alarms"; 
    Uri newUri = null; 
    ContentValues values = new ContentValues(); 
    boolean isRingTone = false; 
    if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { 
     dir = new File(Environment.getExternalStorageDirectory(),what); 
    } else { 
     dir = context.getCacheDir(); 
    } 

    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 

    File file = new File(dir, info.getFileName()); 
    if (!file.exists()) { 
     try { 
      file.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     try { 

      InputStream inputStream = context.getResources() 
        .openRawResource(info.getAudioResource()); 

      OutputStream outputStream = new FileOutputStream(file); 

      byte[] buffer = new byte[1024]; 
      int length; 

      while ((length = inputStream.read(buffer)) > 0) { 
       outputStream.write(buffer, 0, length); 
      } 
      outputStream.flush(); 
      outputStream.close(); 
      inputStream.close(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 
    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); 

    String[] columns = { MediaStore.Audio.Media.DATA, 
      MediaStore.Audio.Media._ID, 
      MediaStore.Audio.Media.IS_ALARM 
      }; 

    Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, columns, MediaStore.Audio.Media.DATA+" = '"+file.getAbsolutePath()+"'",null, null); 
    if (cursor!=null) { 
     int idColumn = cursor.getColumnIndex(MediaStore.Audio.Media._ID); 
     int fileColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DATA); 

     int ringtoneColumn = cursor.getColumnIndex(MediaStore.Audio.Media.IS_ALARM); 
     while (cursor.moveToNext()) { 
      String audioFilePath = cursor.getString(fileColumn); 
      if (cursor.getString(ringtoneColumn)!=null && cursor.getString(ringtoneColumn).equals("1")) { 
       Uri hasUri = MediaStore.Audio.Media.getContentUriForPath(audioFilePath); 
       newUri = Uri.withAppendedPath(hasUri, cursor.getString(idColumn)); 
       isRingTone = true; 
      } 
     } 
     cursor.close(); 
    } 
    if (isRingTone) { 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_ALARM, newUri); 
    }else{ 
     values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
     values.put(MediaStore.MediaColumns.TITLE, info.getName()); 
     values.put(MediaStore.MediaColumns.SIZE, file.length()); 
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
     values.put(MediaStore.Audio.Media.IS_ALARM, true); 
     newUri = context.getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values); 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_ALARM, newUri); 
    } 
} 

private void setDefaultNotice(SongInfo info) { 

    File dir = null; 
    String what = "notifications"; 
    Uri newUri = null; 
    ContentValues values = new ContentValues(); 
    boolean isRingTone = false; 
    if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { 
     dir = new File(Environment.getExternalStorageDirectory(),what); 
    } else { 
     dir = context.getCacheDir(); 
    } 

    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 

    File file = new File(dir, info.getFileName()); 
    if (!file.exists()) { 
     try { 
      file.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     try { 

      InputStream inputStream = context.getResources() 
        .openRawResource(info.getAudioResource()); 

      OutputStream outputStream = new FileOutputStream(file); 

      byte[] buffer = new byte[1024]; 
      int length; 

      while ((length = inputStream.read(buffer)) > 0) { 
       outputStream.write(buffer, 0, length); 
      } 
      outputStream.flush(); 
      outputStream.close(); 
      inputStream.close(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 
    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); 

    String[] columns = { MediaStore.Audio.Media.DATA, 
      MediaStore.Audio.Media._ID, 
      MediaStore.Audio.Media.IS_NOTIFICATION 
      }; 

    Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, columns, MediaStore.Audio.Media.DATA+" = '"+file.getAbsolutePath()+"'",null, null); 
    if (cursor!=null) { 
     int idColumn = cursor.getColumnIndex(MediaStore.Audio.Media._ID); 
     int fileColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DATA); 

     int ringtoneColumn = cursor.getColumnIndex(MediaStore.Audio.Media.IS_NOTIFICATION); 
     while (cursor.moveToNext()) { 
      String audioFilePath = cursor.getString(fileColumn); 
      if (cursor.getString(ringtoneColumn)!=null && cursor.getString(ringtoneColumn).equals("1")) { 
       Uri hasUri = MediaStore.Audio.Media.getContentUriForPath(audioFilePath); 
       newUri = Uri.withAppendedPath(hasUri, cursor.getString(idColumn)); 
       isRingTone = true; 
      } 
     } 
     cursor.close(); 
    } 
    if (isRingTone) { 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION, newUri); 
    }else{ 
     values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); 
     values.put(MediaStore.MediaColumns.TITLE, info.getName()); 
     values.put(MediaStore.MediaColumns.SIZE, file.length()); 
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); 
     values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 
     newUri = context.getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values); 
     RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION, newUri); 
    } 
} 

private void deleteRingtone(SongInfo info) { 
    File dir = null; 
    if (Environment.getExternalStorageState().equals(
      android.os.Environment.MEDIA_MOUNTED)) { 
     dir = new File(Environment.getExternalStorageDirectory(), 
       "Ringtones"); 
    } else { 
     dir = context.getCacheDir(); 
    } 

    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 

    Log.d(TAG, "dir:"+dir.getPath()); 

    File file = new File(dir, info.getFileName()); 
    Log.d(TAG, "file name:"+info.getFileName()); 

    Uri uri = MediaStore.Audio.Media.getContentUriForPath(file 
      .getAbsolutePath()); 

    context.getContentResolver().delete(
      uri, 
      MediaStore.MediaColumns.DATA + " = \"" + file.getAbsolutePath() 
        + "\"", null); 
    if (file.exists()) { 
     file.delete(); 
    } 
} 

OnRingtonePlay onRingtonePlay; 
/** 
* @param onRingtonePlay the onRingtonePlay to set 
*/ 
public void setOnRingtonePlay(OnRingtonePlay onRingtonePlay) { 
    this.onRingtonePlay = onRingtonePlay; 
} 
interface OnRingtonePlay{ 
    public void onPlay(); 
} 
} 

欲一个字体添加到这个 “TextView的” holder.txtName =(TextView的)view.findViewById(R.id.txtSongName);

我试过,但它不为我工作:

// give the font path 
     String fontPath = "font/myfont.otf"; 
     TextView txtName = (TextView) findViewById(R.id.txtSongName); 
     // get the font face 
     Typeface tf = Typeface.createFromAsset((AssetManager) getAssets(), fontPath); 
     // Apply the font 
     txtName.setTypeface(tf); 
     // holder = (ViewHolder) view.getTag(); 

,并非常感谢你:)

+0

您是否收到任何错误? –

回答

0

这是我怎么添加AA自定义字体,请检查你是怎么错过

1.创建资产文件夹

enter image description here

  • 添加字体的单独的文件夹/目录,并将其命名为字体
  • enter image description here

    3.添加字体到该文件夹​​

    enter image description here

    4.Now我可以把我的字体,这是我要做的事

    Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/Xcelsion.ttf"); // if you are inside a fragment use -> getActivity().getAssets() .....check your path is correct 
        TextView myTextView = (TextView)findViewById(R.id.text_view); 
        myTextView.setTypeface(myTypeface); // set that font to the textview you want 
    

    注:如果您在接受其他类的应用工作的环境中使用yourContextThatYouGot.getAssets(),如果你是在一个片段使用getActivity().getAssets()代替getAssets()

    +0

    谢谢你的回答,我将在这里使用的上下文“if(convertView == null){LayoutInflater li =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = li.inflate(R.layout.listelement ,null); finalHolder holder = new ViewHolder(); holder.txtName =(TextView)view.findViewById(R.id.txtSongName); holder.btnFavorite =(ImageView)view.findViewById(R.id.btnFavorite ); holder.btnPlayPause =(ImageView的)view.findViewById(R.id.btnPlayPause); view.setTag(持有人); }其他{} 看到 –

    +0

    'ListRingtonesAdapter'你从哪里打电话这一点,你怎么称呼它有它的参数'上下文'保持全局上下文mCon文本,并在其内部调用'this.mContext = context'时将其分配给'ListRingtonesAdapter',然后获得可以使用mContext .getAssets()的值mContext。 –