私は、Adapter onCreate を設定している ListView を持っています。しかし、静的メソッドに setAdapter を入れて、別のクラスのボタンの onClick で呼び出したいと思います。これは可能ですか?現在、「非静的 setAdapter メソッドへの静的参照を作成できません」と表示されています。以下は私のコードです:コードで、静的メソッド「addItems()」でそれを探している部分について言及しました。提案を歓迎します。前もって感謝します
public class LogListView extends ListActivity {
/** Called when the activity is first created. */
private static String newString;
private static EntryAdapter adapter;
int clickCounter = 0;
static ArrayList<Item> items = new ArrayList<Item>();
static SharedPreferences preferences = null;
private static Context context = null;
StringTokenizer tokens;
String first;
String second;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = getApplicationContext();
/*I WANT THIS LOOP TO BE IN "ADDITEMS() METHOD*/
preferences = context.getSharedPreferences("LOG", android.content.Context.MODE_PRIVATE);
newString = preferences.getString("log", "");
//items.add(new SectionItem("Log Report"));
items.add(new EntryItem("", newString));
adapter = new EntryAdapter(this, items);
setListAdapter(adapter);
/*I WANT THIS LOOP TO BE IN "ADDITEMS() METHOD ENDS*/
}
//Method which will handle dynamic insertion
public static void addItems() {
items.add(new EntryItem("", newString));
adapter.notifyDataSetChanged();
}
//Method which will handle dynamic insertion ends
@Override
public void onResume(){
super.onResume();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(!items.get(position).isSection()) {
EntryItem item = (EntryItem)items.get(position);
//Toast.makeText(this, "You clicked " + item.title , Toast.LENGTH_SHORT).show();
Toast.makeText(this, "You clicked " + position , Toast.LENGTH_SHORT).show();
}
if (position == 9){
}
super.onListItemClick(l, v, position, id);
}
}