2014-06-26 47 views
1

我正在嘗試在應用結算中執行一些操作以刪除廣告。使EditText在活動開始時工作

我有這段代碼:

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, 
      Inventory inventory) { 

     // Have we been disposed of in the meantime? If so, quit. 
     if (mAbHelper == null) 
      return; 

     // Is it a failure? 
     if (result.isFailure()) { 
      return; 
     } 

     // Do we have the premium upgrade? 
     Purchase premiumPurchase = inventory.getPurchase(SKU_PREMIUM); 
     mIsPremium = premiumPurchase != null; 
     updateInterface(); 
    } 
}; 

/** 
* Updates interface 
*/ 
private void updateInterface() { 
    Button saveButton = (Button) findViewById(R.id.btUpgrade); 
    Button btUpgrade = (Button) findViewById(R.id.btUpgrade); 
    if (mIsPremium) { 
     final EditText edittext = (EditText) findViewById(R.id.editTextAntiAdsKey); 

     saveButton = (Button) findViewById(R.id.buttonSaveAntiAdsKey); 

     if (edittext != null && edittext.getText() != null) { 
      Constants.ANTI_ADS_VALUE = edittext.getText().toString().trim(); 
     } else { 
      Constants.ANTI_ADS_VALUE = "ERROR"; 
     } 
     if ("".equals(Constants.ANTI_ADS_VALUE) 
       || Constants.ANTI_ADS_VALUE.equals(this 
         .getString(R.string.app_name))) { 
      Constants.ANTI_ADS_VALUE = ""; 
      Toast.makeText(MainActivity.this, 
        getResources().getString(R.string.app_name), 
        Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(
        MainActivity.this, 
        getResources().getString(R.string.app_name) + " (" 
          + edittext.getText() + ")", Toast.LENGTH_LONG) 
        .show(); 
     } 

     SharedPreferences settings = getSharedPreferences(
       Constants.PREFERENCES_FILE, Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putString(Constants.ANTI_ADS_KEY, Constants.ANTI_ADS_VALUE); 
     editor.commit(); 
     editor.clear(); 



    } else { 
     btUpgrade.setEnabled(true); 

    } 
} 

的事情是我必須按下一個按鈕,使這個代碼工作。 我希望這段代碼能在一個活動開始時工作。

我是新手,所以我想知道是否有可能?

謝謝

+0

更具體 –

+0

不,它是不可能的。在'onCreate'中,僅創建視圖,那麼您輸入的值將不可用。 –

+0

當我點擊一個按鈕來做兩件不同的事情時,有可能嗎? – user3627763

回答

0

在初始化您的編輯框後直接輸入代碼。但如果你想保持它的按鈕,點擊還是想上執行啓動那麼你savebutton OnClickListener代碼塊後,你可以做寫`

saveButton.performClick() 

。也將它放在activity的onResume()方法塊中,所以即使你的活動從暫停開始,它也會被執行。

0

如果你不想按下一個按鈕&想讓這段代碼工作在Activity啓動時刪除該按鈕的onClickListener。使用這個:

final EditText edittext = (EditText) findViewById(R.id.editTextAntiAdsKey); 

saveButton = (Button) findViewById(R.id.buttonSaveAntiAdsKey); 

     if (edittext != null && edittext.getText() != null) { 
      Constants.ANTI_ADS_VALUE = edittext.getText().toString() 
        .trim(); 
     } else { 
      Constants.ANTI_ADS_VALUE = "ERROR"; 
     } 
     if ("".equals(Constants.ANTI_ADS_VALUE) 
       || Constants.ANTI_ADS_VALUE.equals(activity 
         .getString(R.string.app_name))) { 
      Constants.ANTI_ADS_VALUE = ""; 
      Toast.makeText(PromoCode.this, 
        getResources().getString(R.string.app_name), 
        Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(
        PromoCode.this, 
        getResources().getString(R.string.app_name) + " (" 
          + edittext.getText() + ")", 
        Toast.LENGTH_LONG).show(); 
     } 

     SharedPreferences settings = getSharedPreferences(
       Constants.PREFERENCES_FILE, Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putString(Constants.ANTI_ADS_KEY, 
       Constants.ANTI_ADS_VALUE); 
     editor.commit(); 
     editor.clear(); 
+0

我編輯了代碼來向你展示我真正想做的事情。 – user3627763

+0

你希望這個代碼應該在你鍵入的每個單詞上執行嗎? –

+0

其實我不想輸入一個單詞。我希望當用戶通過應用內結算購買物品時。當用戶使用該項目時,應用程序應該向常量發送代碼,以便功能解鎖。 – user3627763