Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialJames Lowry
7,975 PointsError with onItemClickListener
The error tells me AdapterView can not be applied. When I click on Alt-enter it requests to create a variable which doesn't seem right.
package teamtreehouse.com.stormy.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.Arrays;
import butterknife.ButterKnife;
import butterknife.InjectView;
import teamtreehouse.com.stormy.R;
import teamtreehouse.com.stormy.adapters.DayAdapter;
import teamtreehouse.com.stormy.weather.Day;
public class DailyForecastActivity extends Activity {
@InjectView(android.R.id.list) ListView mListView;
@InjectView(android.R.id.empty) ListView mEmptyTextView;
private Day[] mDays;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_daily_forecast);
ButterKnife.inject(this);
Intent intent = getIntent();
Parcelable[] parcelables = intent.getParcelableArrayExtra(MainActivity.DAILY_FORECAST);
mDays = Arrays.copyOf(parcelables, parcelables.length, Day[].class);
DayAdapter adapter = new DayAdapter(this, mDays);
mListView.setAdapter(adapter);
mListView.setEmptyView(mEmptyTextView);
mListView.getOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String dayOfTheWeek = mDays[position].getDayOfTheWeek();
String conditions = mDays[position].getSummary();
String highTemp = mDays[position].getTemperatureMax() + "";
String message = String.format("On %s the high will be %s and it will be %s",
dayOfTheWeek,
highTemp,
conditions);
Toast.makeText(DailyForecastActivity.this, message, Toast.LENGTH_LONG).show();
}
});
}
}
I'm sure there is something simple I'm overlooking
1 Answer
James Simshaw
28,738 PointsHello,
It looks like you are calling mListView.getOnItemClickListener() instead of mListView.setOnItemClickListener(). If this doesn't fix things, we can try to further troubleshoot this.