I am creating a listView in Android using the following code :
ListView listView = (ListView) List.this.findViewById(R.id.mylist);
listView.setTextFilterEnabled(true);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" ,"asdsad","asdsdsa","asdasdsa"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,R.layout.list_item,values);
// Assign adapter to ListView
listView.setAdapter(adapter);
listView.setVisibility(0);
Now I want to Toast a selected Item from my ListView so I use the following code :
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String item = ((TextView)view).getText().toString();
Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
}
});
But Unfortunately I am getting error for the following piece of code
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
The error is
The type new AdapterView.OnItemClickListener(){} must implement the inherited abstract method
AdapterView.OnItemClickListener.onItemClick(AdapterView, View, int, long)
So What Should I do to correct this error and also print my listview element?
Edited
Entire Code
package com.notification;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;
import android.view.*;
public class List1 extends Activity
{
Context context=this;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//ListView
try{
ListView listView = (ListView) List1.this.findViewById(R.id.mylist);
listView.setTextFilterEnabled(true);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" ,"asdsad","asdsdsa","asdasdsa"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,R.layout.list_item,values);
// Assign adapter to ListView
listView.setAdapter(adapter);
listView.setVisibility(0);
//required
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,long id)
//public void onItemClick(ListView<?> listview, View view, int position,long id)
{
Toast.makeText(List1.this, "hi",Toast.LENGTH_LONG).show();
}
});
//required
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();}
}
}
Nothing is getting toasted. why?
Edit 2
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tv1"
android:padding="10dp"
android:background="@drawable/textview1"
style="@style/textview_text"
android:textSize="16dp">
</Button>
listview.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</RelativeLayout>
You have set your java compiler version to 1.5 so its giving error.
Two things you can do.
1) remove
@Overridewritten before onItemClick2)
right-click project - properties - java compiler - check-Enable project setting - change to 1.6Also there is other changes required.
Use
YouActivityName.thisinsteadgetBaseContext()while showingToastItem can be null so change…
String item = values[position]