2015-05-29 63 views
-1

我已經制作了與AsyncTask一起使用的程序,它在程序執行時打印出JSON數據的列表,但問題在於當我按下按鈕時,我希望它執行。如何將AsyncTask的結果寫入我的onClickButtonListener?我如何從onClick調用AsyncTask?apcing onPostExecute to onClickListener

代碼:

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

簡單..在你的按鈕onclick中調用/執行asynctask。 –

+0

或者如果你想獲得asynctask的結果數據,首先將它存儲在Arraylist/SharedPrefs/Database的某個地方,然後在onclick按鈕上從那裏獲取數據。 –

+0

您是否嘗試將它添加到您的onClick中,如Amrit建議的那樣。如果是這樣,你遇到了什麼問題? – codeMagic

回答

2

你可以通過簡單地調用新YourAsyncTaskName打電話給你的AsyncTask類的按鈕,監聽器裏()執行()。祝你好運。