Мое название может показаться вам неясным.
В связи с новизной в 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();
}
}
Чтобы получить эти списки тренировок, я использую BaseAdapter, который расширяет TrainingAdapter.
Мой класс 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, что обучение успеет начаться, и другое изображение, когда обучение не готово к началу. Условие начала тренировки можно увидеть в классе активности. Заранее спасибо за помощь..