我创建了一个自定义列表视图并创建了我自己的适配器类,我用下面的代码夸大了视图:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View streamrowView = layoutInflater.inflate(R.layout.streamrow, parent,false);
initUI(streamrowView);
tvUserMsg.setText(values[position].Message);
tvPostDate.setText(values[position].postDate);
return streamrowView;
}
private void initUI(View streamrowView) {
tvUserMsg = (TextView) streamrowView.findViewById(R.id.tvUserMsg);
tvPostDate = (TextView) streamrowView.findViewById(R.id.tvPostDate);
}
Run Code Online (Sandbox Code Playgroud)
列表视图工作正常,但设置onItemClick侦听器事件不起作用
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> data, View v, int pos,
long arg3) {
Toast.makeText(getApplicationContext, "list clicked" ,1).show();
System.out.println("*****List clicked!!!");
}
});
Run Code Online (Sandbox Code Playgroud)
对于自定义行的onItemClick侦听器是否有任何其他方法.
我正在尝试保存文件解析的日期,以便下次用户打开应用程序时,可以根据上一个解析日期检查日期.
我使用共享首选项来保存数据并检索它,但收到错误.这是代码:
SharedPreferences settings = getPreferences(0);
String today = new Date(System.currentTimeMillis()).toString();
SharedPreferences.Editor edit = settings.edit();
System.out.println("******** Today : " + today);
edit.putString("lastdate", today);
String fetch = settings.getString("lastdate", "0");
System.out.println("******** Fetch : " + fetch);
txtTest.setText(fetch);
Run Code Online (Sandbox Code Playgroud)
但我得到空指针错误,我错过了什么?
可能重复:
java中的DateFormat转换问题?
我试图将字符串转换为日期,但得到错误.
我正在使用日期:
URL xmlUrl = new URL(path);
URLConnection urlconn = xmlUrl.openConnection();
Date = new Date(urlconn.getLastModified());
Run Code Online (Sandbox Code Playgroud)
然后我将此日期保存在一个文件中,该文件以下列格式保存:
Mon Jun 21 16:31:24 Asia/Karachi 2010
Run Code Online (Sandbox Code Playgroud)
然后当我稍后从文件中读取这个日期作为字符串时,我再次想要将它保存到日期,但我收到错误.
我试过了 :
DateFormat format = DateFormat.getDateInstance();
date = format.parse(fileDate);
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
java.text.ParseException: Unparseable date: Mon Jun 21 16:31:24 Asia/Karachi 2010
Run Code Online (Sandbox Code Playgroud)
有什么方法可以找回日期.
谢谢
我正在使用以下代码收到文件的最后修改日期:
xmlUrl = new URL("http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html");
URLConnection urlconn = xmlUrl.openConnection();
urlDate = new Date(urlconn.getLastModified());
Run Code Online (Sandbox Code Playgroud)
结果我得到以下格式的日期:
Tue Dec 18 05:11:33 Asia/Karachi 2007
Run Code Online (Sandbox Code Playgroud)
我想将其更改为简单的dd MMM yyyy格式
我用了:
SimpleDateFormat format = new SimpleDateFormat("dd MMM yyyy");
try {
tempDate = format.parse(urlDate.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但它没有帮助我解决这个问题,我仍然以上述长格式获取日期.
我有一个自定义对象,其结构是
public String name;
public int type;
public String createdOn;
Run Code Online (Sandbox Code Playgroud)
createdOn 是日期,其格式是: 2011-12-16T23:27:27+0000
我已经存储了多个这种类型的对象,ArrayList现在我想根据创建日期和时间对它们进行排序.
我尝试过使用Collections.sort(....),但没有合适的结果.
我使用an AsyncTask来获取数据,然后将其加载到ListView.我的代码是:
AsyncTaskTwitterFeeds asyncTaskTwitterFeeds = new AsyncTaskTwitterFeeds(TwitterFeedsActivity.this);
asyncTaskTwitterFeeds.execute("");
loadList();
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,一旦AsyncTask执行,流程就会到达loadlist()方法并且程序崩溃.我发现的原因Adapter是仍在使用的数组仍在填充.我想知道我如何能够AsyncTask执行一次并且只有当它完成然后流程应该转到loadlist()方法时.这是LogCat错误:
02-25 18:50:25.879: E/AndroidRuntime(19851): FATAL EXCEPTION: main
02-25 18:50:25.879: E/AndroidRuntime(19851): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cubix.twitterfeed/com.cubix.twitterfeed.TwitterFeedsActivity}: java.lang.NullPointerException
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.os.Looper.loop(Looper.java:143)
02-25 18:50:25.879: E/AndroidRuntime(19851): at android.app.ActivityThread.main(ActivityThread.java:4196)
02-25 18:50:25.879: E/AndroidRuntime(19851): at …Run Code Online (Sandbox Code Playgroud)