将onPostExecute应用于onClickListener

时间:2015-05-29 14:22:16

标签: java android json

我已经制作了与AsyncTask一起使用的程序,它在程序执行时打印出JSON数据列表,但问题是我希望它在按下按钮时执行。如何将AsyncTask的结果导入onClickButtonListener?我如何从onClick调用AsyncTask?

代码:

public class Instillinger extends MainActivity {
    DatabaseHelper myDb;
    String navn;
    String adresse;
    String bilmere;
    TextView visNavn;
    TextView visAdresse;
    TextView visBil;
    EditText navnFelt;
    EditText adrFelt;
    EditText bilFelt;
    Button lagreButton;
    Button tilbakeButton;
    Button visDataButton;
    List<Bruker> brukere;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.instillinger);

        myDb = new DatabaseHelper(this);

       // visNavn = (TextView) findViewById(R.id.visNavn);
        visAdresse = (TextView) findViewById(R.id.visAdresse);
        //visBil = (TextView) findViewById(R.id.visBil);
        navnFelt = (EditText) findViewById(R.id.navnFelt);
        adrFelt = (EditText) findViewById(R.id.adrFelt);
        bilFelt = (EditText) findViewById(R.id.bilFelt);
        lagreButton = (Button) findViewById(R.id.lagreButton);
        tilbakeButton = (Button) findViewById(R.id.tilbakeButton);
        //visDataButton = (Button) findViewById(R.id.visData);

        brukere = myDb.getBrukere();
        for(Bruker b: brukere){

            String log = "Du er registrert som: "+ b.getNavn() + "\n"  +
                    "Adresse: " + b.getAdresse() + "\n" +
                    "Bilmerke: " + b.getBilmerke() + "\n" +
                    "For å oppdatere informasjon fyll Alle feltene nede";
            visAdresse.setText(log);
        }
        settInnData();
    }
    public void settInnData() {
        lagreButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myDb.addContact(new Bruker("Giedrius","mldc","123","1"));

                brukere = myDb.getBrukere();
                for(Bruker b: brukere){

                    String log = "Du er registrert som: "+ b.getNavn() + "\n"  +
                            "Adresse: " + b.getAdresse() + "\n" +
                            "Bilmerke: " + b.getBilmerke() + "\n" +
                            "Bilmerke: " + b.getState() + "\n" +
                            "For å oppdatere informasjon fyll Alle feltene nede";
                    visAdresse.setText(log);
                }
                //myDb.getContact(myDb.getCount()).toString();
         }
        });
    }
}}

1 个答案:

答案 0 :(得分:2)

只需调用 new YourAsyncTaskName()。execute(),即可在按钮侦听器中调用AsyncTask类。祝你好运。