2017-02-28 7 views
-1

私は現在の在庫情報を収集する簡単なアプリを開発中です。私はAsyncTaskを適用しています。私はGUIを構築していますが、私はEditTextに株式シンボルを入力した後に何も起こらないようです。どんな支援も大歓迎です。私はこれらのトピックをグーグルで試してみましたが、ドキュメントやチュートリアルを見ていますが、私が紛失しているものは何もわかりません。私はアンドロイド開発を学ぶのに約2ヶ月です。AndroidDev:在庫アプリケーション用AsyncTask - 何も起こっていません

package cornez.com.stockquotes; 

import android.content.Context; 
import android.graphics.Bitmap; 
import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.WindowManager; 
import android.view.inputmethod.EditorInfo; 
import android.view.inputmethod.InputMethodManager; 
import android.widget.EditText; 
import android.widget.TextView; 

import java.io.IOException; 

public class MainActivity extends AppCompatActivity { 

    EditText editText; 
    String symbol; 
    TextView symbolText; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     TextView nameText, tradePriceText, tradeTimeText, changeText, rangeText; 

     symbolText = (TextView) findViewById(R.id.symbolText); 
     nameText = (TextView) findViewById(R.id.nameText); 
     tradePriceText = (TextView) findViewById(R.id.tradePriceText); 
     tradeTimeText = (TextView) findViewById(R.id.tradeTimeText); 
     changeText= (TextView) findViewById(R.id.changeText); 
     rangeText = (TextView) findViewById(R.id.rangeText); 


     editText = (EditText) findViewById(R.id.editText); 
     editText.setOnEditorActionListener(new TextView.OnEditorActionListener() 
     { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, 
              KeyEvent event) 
      { 
       if (actionId == EditorInfo.IME_ACTION_DONE) 
       { 
        // actions when "Done" key is pressed 

        InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
        return true; 

       } 
       return false; 
      } 
     }); 



     editText.requestFocus(); 
     getWindow().setSoftInputMode(WindowManager.LayoutParams. 
       SOFT_INPUT_STATE_VISIBLE); 

     getStockInfoTask stockTask = new getStockInfoTask(); 
     symbol = editText.getText().toString(); 
     stockTask.execute(symbol); 


    } 

    //AsyncTask 
    private class getStockInfoTask extends AsyncTask<String, Void, Stock> 
    { 

     protected Stock doInBackground(String... params) 
     { 
      Stock stock = new Stock(symbol); 
      try { 
       stock.load(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      return stock; 
     } 

     protected void onPostExecute(Stock stock) 
     { 
      symbolText.setText(stock.getSymbol()); 
     } 
    } 



} 
+0

誰もが、あまりにもそれは私をさせません見てみたかった場合には、私は私のストッククラスのコードを追加しようとしました。 – DJPharaohCHS

答えて

0
  1. のTextViewがアクションを受け取り、新たなスレッドで

    onEditorAction 
    

実行内部コード:ここで

は私のコードです。リスナーが初期化された後

  • コード

    symbol = editText.getText().toString(); 
    
  • は、同期を実行します。だから、

    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() 
        { 
         @Override 
         public boolean onEditorAction(TextView v, int actionId, 
                 KeyEvent event) 
         { 
          if (actionId == EditorInfo.IME_ACTION_DONE) 
          { 
           // actions when "Done" key is pressed 
    
           InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
           imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
    
           getStockInfoTask stockTask = new getStockInfoTask(); 
           symbol = editText.getText().toString(); 
           stockTask.execute(symbol); 
    
           return true; 
          } 
          return false; 
         } 
        }); 
    
    
    
        editText.requestFocus(); 
        getWindow().setSoftInputMode(WindowManager.LayoutParams. 
          SOFT_INPUT_STATE_VISIBLE); 
    
    関連する問題