1

Hi comrades I want to in paragraphs sheet output yu date (13.4.2014):

main

public class MainActivity extends Activity implements OnItemClickListener {

public static final String[] titles = new String[] { "Strawberry",
        "Banana", "Orange", "Mixed" };



public static final Integer[] images = { R.drawable.news_icon_1,
        R.drawable.news_icon_2, R.drawable.news_icon_1, R.drawable.news_icon_2 };

ListView listView;
List<RowItem> rowItems;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rowItems = new ArrayList<RowItem>();
    for (int i = 0; i < titles.length; i++) {
        RowItem item = new RowItem(images[i], titles[i], new GregorianCalendar(2011, 11, i).getTime());
        rowItems.add(item);
    }

    listView = (ListView) findViewById(R.id.list);
    CustomListViewAdapter adapter = new CustomListViewAdapter(this,
            R.layout.list_item, rowItems);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(this);
}


public void onItemClick(AdapterView<?> parent, View view, int position,
                        long id) {
    Toast toast = Toast.makeText(getApplicationContext(),
            "Item " + (position + 1) + ": " + rowItems.get(position),
            Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
    toast.show();
}

}

CustomListViewAdapter

public class CustomListViewAdapter extends ArrayAdapter {

Context context;


public CustomListViewAdapter(Context context, int resourceId,
                             List<RowItem> items) {
    super(context, resourceId, items);

    this.context = context;
}

/*private view holder class*/
private class ViewHolder {
    ImageView imageView;
    TextView txtTitle;
    TextView txtDesc;
}

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    RowItem rowItem = getItem(position);

    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_item, null);
        holder = new ViewHolder();
        holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
        holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
        holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
        convertView.setTag(holder);
    } else
        holder = (ViewHolder) convertView.getTag();

    holder.txtDesc.setText((CharSequence) rowItem.getPostDate());
    holder.txtTitle.setText(rowItem.getTitle());
    holder.imageView.setImageResource(rowItem.getImageId());

    return convertView;
}
}

RowItem

public class RowItem {
private int imageId;
private String title;
private Date postDate;

public RowItem(int imageId, String title, Date postDate) {
    this.imageId = imageId;
    this.title = title;
    this.postDate = postDate;
}
public int getImageId() {
    return imageId;
}
public void setImageId(int imageId) {
    this.imageId = imageId;
}
public Date getPostDate() {
    return postDate;
}

public void setPostDate(Date postDate) {
    this.postDate = postDate;
}

public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}
@Override
public String toString() {
    return title + "\n" + postDate;
}

}

I receive an error:

04-13 07:42:13.559 862-862/com.example.listview E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.CharSequence

why?, and how to bring a date?

Raghunandan
  • 132,755
  • 26
  • 225
  • 256
comSaaxov
  • 73
  • 1
  • 8

1 Answers1

0

You have

holder.txtDesc.setText((CharSequence) rowItem.getPostDate());

You are casting Date to CharacterSequence. setText takes CharacterSequence as a param. What you need to do is Covert Date to String and then set it to textview

Convert java.util.Date to String

Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datestring = formatter.format(rowItem.getPostDate());
holder.txtDesc.setText(datestring);
Community
  • 1
  • 1
Raghunandan
  • 132,755
  • 26
  • 225
  • 256