2015-05-29 64 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类的按钮,监听器里()执行()。祝你好运。