0

私は、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);
    }
}
4

1 に答える 1

1

わかった。静的メソッドで setAdapter を使用する必要はありません。私ができることは、onCreate で、setAdapter を脇に置いておくことができます。そして onClick を使用して値を入力できます

adapter.notifyDataSetChanged();
于 2013-11-13T13:41:17.740 に答える