【发布时间】:2014-02-14 10:22:23
【问题描述】:
你可能觉得我的头衔不清楚。
由于Java新手和缺乏逻辑我想问你一个简单的事情。
我有一个 Activity 课程,其中有包含两个文本视图和一个图像视图的培训列表。 OnClick 到 listView 我想在某些情况下转到下一个活动。您可以在下面的代码中看到这种情况。
活动类;
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
currentTraining = (Training) arg0.getAdapter().getItem(arg2);
SharedMemory.getInstance().setCurrentTraining(currentTraining);
startTraining();
}
@SuppressLint("SimpleDateFormat")
private void startTraining() throws ParseException {
// current date & time
Calendar now = Calendar.getInstance();
// parse date & time from database
String trainingStartDate = SharedMemory.getInstance()
.getCurrentTraining().getDate();
String trainingStartTime = SharedMemory.getInstance()
.getCurrentTraining().getStartTime();
String strDateTime = trainingStartDate + " " + trainingStartTime;
Calendar training = Calendar.getInstance();
try {
training.setTime(new SimpleDateFormat("MM-dd-yyyy HH:mm")
.parse(strDateTime));
} catch (java.text.ParseException e) {
e.printStackTrace();
}
// find difference in milliseconds
long difference = training.getTimeInMillis() - now.getTimeInMillis();
if (difference < 15 * 60 * 1000) { // less than 15 minutes
Intent intent = new Intent(getApplicationContext(),
TraineeListActivity.class);
MainActivity.this.startActivity(intent);
finish();
} else {
Toast.makeText(
getApplicationContext(),
"The training starts on" + " " + trainingStartDate + " at "
+ trainingStartTime, Toast.LENGTH_SHORT).show();
}
}
为了获得这些培训列表,我使用了扩展 TrainingAdapter 的 BaseAdapter。
我的 TrainingAdapter 类;
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.trainingadapter, null);
holder = new ViewHolder();
holder.txtName = (TextView) convertView
.findViewById(R.id.training_title);
holder.trainingDetails = (TextView) convertView
.findViewById(R.id.training_dtls);
holder.lockImage = (ImageView) convertView
.findViewById(R.id.lockImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtName.setText(trainingsList.get(position).getTitle());
holder.trainingDetails.setText("In "
+ trainingsList.get(position).getLocation() + " on "
+ trainingsList.get(position).getDate() + " at "
+ trainingsList.get(position).getStartTime() + " - "
+ trainingsList.get(position).getEndTime() + " by "
+ trainingsList.get(position).getTrainer());
**HERE-->** holder.lockImage.setBackgroundResource(R.drawable.unlock);
return convertView;
}
static class ViewHolder {
TextView trainingDetails;
TextView txtName;
ImageView lockImage;
}
在 imageView (lockImage) 中,我想将一个图像设置为训练有时间开始的 listView 和另一个图像,当训练尚未准备好开始时。训练开始情况可见活动课。提前感谢您的帮助..
【问题讨论】:
-
那么你的问题是什么。检查条件并替换图像??
-
你的意思是在 Activity 类里面 if else 条件我放了两张不同的图片??
-
在BaseAdapter getview方法中放置条件
-
我不知道如何实现。如果你能提供一些小代码提示......
-
我的意思是什么条件??
标签: java android listview android-listview android-adapter