gpt4 book ai didi

java - 谷歌风格的卡片(发行)

转载 作者:行者123 更新时间:2023-11-30 02:33:20 27 4
gpt4 key购买 nike

我只是一个新手,刚刚开始学习使用教程等制作 Android 应用程序...我刚找到一些代码来制作 Google 风格的卡片,我写了代码,但由于某种原因它似乎有错误。

在我的静态中,它不能“从对象转换为字体”,它称之为不匹配。此外,它无法解析“commandText”(myListItem.descText = (TextView) convertView.findViewById(R.id.commandText);)

有什么帮助吗?

非常感谢,这是代码:

ArrayListAdapter.java-

import java.util.ArrayList;

import java.util.Hashtable;

import java.util.List;

 

import android.content.Context;

import android.graphics.Typeface;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.TextView;

 

public class NowArrayAdapter extends ArrayAdapter<String> {

 private Context context;

 private ArrayList<String> values;

 private Typeface typeface;

 private static Hashtable fontCache = new Hashtable();

 private LayoutInflater inflater;

 

 public class CustomListItem {

  TextView descText;

  

 }

 

 public NowArrayAdapter(Context context, int resource, ArrayList<String> commandsList) {

  //TODO Auto-generated constructor stub

  super(context, R.layout.list_item, commandsList);

  this.context = context;

  values = new ArrayList<String>();

  values.addAll(commandsList);

  typeface = getTypeface(this.context, "fonts/Roboto-Light.ttf");

  inflater = LayoutInflater.from(this.context);

 }

 

 static Typeface getTypeface(Context context, String font) {

  Typeface typeface = fontCache.get(font);

  if (typeface == null) {

   typeface = Typeface.createFromAsset(context.getAssets(), font);

   fontCache.put(font, typeface);

  }

  return typeface;

  

 }

 

 public View getView(int position, View convertView, ViewGroup parent) {

  CustomListItem myListItem;

  String myText = getItem(position);

  

  if(convertView == null) {

   convertView = inflater.inflate(R.layout.list_item, parent, false);

   myListItem = new CustomListItem();

   

   myListItem.descText = (TextView) convertView.findViewById(R.id.commandText);

   myListItem.descText.setTypeface(typeface);

   

   convertView.setTag(myListItem);

  } else {

   myListItem = (CustomListItem) convertView.getTag();

  }

  

  myListItem.descText.setText(myText);

  //myListItem.descText.setTextSize(14)

  

  return convertView;

 }

 

}

最佳答案

一方面,您需要在定义 fontCache Hashtable 时指定您的类型。由于您正在通过字符串查找字体,因此请在您的定义中使用这些类型:

private static Hashtable<String, Typeface> fontCache = new Hashtable<String, Typeface>();

其次,如果 R.id.commandText 无法解析,那么它不存在于您的 R.java 资源文件中。确保您已在 R.layout.list_item 中创建了一个 View ,并将 android:id 属性设置为 "@+id/commandText"。如果您已经这样做了,也许您需要清理并重建您的项目以强制重新创建 R.java。

关于java - 谷歌风格的卡片(发行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26979036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com