Reputation: 39
public class MainActivity extends Activity {
static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana",
"Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit",
"Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setListAdapter(new ArrayAdapter<String>(this,
R.layout.activity_main, FRUITS));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
The following errors appear:
Gradle: cannot find symbol method
setListAdapter(android.widget.ArrayAdapter<java.lang.String>)
Gradle: cannot find symbol method getListView()
Upvotes: 0
Views: 3402
Reputation: 16729
Extend ListActivity
instead of only Activity
.
public class MainActivity extends ListActivity { }
In your R.layout.activity_main
use <ListView android:id="@android:id/list"/>
Create an adapter for list.(following is just an example to explain.)
ArrayAdapter arrayAdapter = new ArrayAdapter(this, // Context.
ndroid.R.layout.simple_list_item_1, // Specify the row template to use
your_array); // your array having data
setListAdapter(arrayAdapter );
Upvotes: 0
Reputation: 6096
You should extend ListActivity instead of Activity and in your xml listview id must be
android:id="@android:id/list"
Upvotes: 0
Reputation: 3249
Sample listactivity code, changing it according to your need:
File : res/layout/list_fruit.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="20sp" >
</TextView>
File: ListFruitActivity.java
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class ListFruitActivity extends ListActivity {
static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana",
"Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit",
"Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// no more this
// setContentView(R.layout.list_fruit);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_fruit,FRUITS));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
Upvotes: 0
Reputation: 24853
Try this..
ListView listView = (ListView) findViewById(R.id.list);
listView.setTextFilterEnabled(true);
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,FRUITS));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
Upvotes: 0
Reputation: 7486
You should extend ListActivity
instead of Activity
. And your problem should be long gone.
Upvotes: 0
Reputation: 8225
Your code starts with:
public class MainActivity extends Activity {
Since you are using getListView() you must extend ListActivity instead. Try
public class MainActivity extends ListActivity {
Upvotes: 2