在我的android應用程序中,我使用抽球獲取一些信息,然後動態創建佈局。問題是我想添加一個按鈕點擊偵聽器到動態創建的佈局視圖之一,但我必須等到凌空響應。這是一個按鈕點擊偵聽器,所以我不能把OnClickListener放在響應塊中,所以這裏是一個問題:如何理解何時生成響應並將OnClickListener放入其中?Android - 在排球響應生成時運行一段代碼
1
A
回答
1
試試這個,當你從凌空得到的數據:
button.performClick();
button.setPressed(true);
+0
也可以在btn.setOnclicklistener上執行您想要的操作 –
1
您可以使用廣播接收器得到通知時,你的數據被取出(或解析)。
你可以這樣做。
編寫一條廣播消息來告訴數據被提取。
你可以做這樣的事情在凌空你onResponse方法
public void onResponse(JSONObject response) {
try {
// Parsing
someMethod(); /// this is the method to notify idf data is fetched
} catch (JSONException e) {
e.printStackTrace();
}
}
的someMethod()
public void someMethod(){
Intent i = new Intent();
i.setAction("Some key");
sendBroadcast(i);
}
登記接收您的活動
BroadcastReceiver receiver = new YourReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("Some key");
registerReceiver(receiver, filter);
最後一步:設置裏面的onReceive您buttonListener()的方法 接收機
private class YourReceiver extends BroadcastReceiver{
private Context context;
@Override
public void onReceive(Context context,Intent intent)
{
if(intent.getAction().equalsIgnoreCase("Some key"))
{
//Set your button listener here
}
}
}
注:致電您註冊接收器後您接收器(可避免這種常見的錯誤)。
這是starting point to learn Broadcast Receiver,如果你不知道他們。
`
0
過帳方法來發布凌空請求。在onResponse您可以根據需要你這樣的反應進行你的操作:
private void fetchData() {
StringRequest stringRequest = new StringRequest(mURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(expectedResponse){
Button mBtn=new Button(getApplicationContext());
mBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Conduct your operation here
}
});
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(VolleyExampleActivity.this, error.getMessage(), Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
希望這有助於。
0
在響應塊,你也可以寫
Button dynamicButton = new Button(getActivity());
dynamicButton.setId(0X000000);
dynamicButton.setOnClickListener((View.OnClickListener)getActivity());
在點擊監聽器可以處理這樣
@Override
public void onClick(View v) {
switch (v.getId()){
case 0X000000:
Toast.makeText(getActivity(),"To something",Toast.LENGTH_LONG).show();
break;
}
}
我希望這幫助
相關問題
- 1. 在生成SOAP Web服務響應後運行Java代碼
- 2. 運行時代碼生成和編譯
- 3. 排球JSON響應
- 4. 在C#中運行一段代碼一段時間?
- 5. 安裝應用程序時只運行一段代碼
- 6. Java代碼在運行時生成和執行,java.lang.NoClassDefFoundError
- 7. Android APK在運行時不會生成
- 8. 如何在運行時在.net winforms中生成代碼事件?
- 9. Retrofit2 - 全球檢查響應代碼
- 10. 代碼分析在biztalk 2009生成的代碼上運行
- 11. 當我的代碼正在運行時,MATLAB GUI不響應
- 12. 如何運行wxGlade生成的代碼
- 13. 運行由soapui生成的axis2代碼
- 14. 尋找排球請求響應時間android
- 15. 排球,BasicNetwork.performRequest:意外的響應碼405,同時使StringRequest
- 16. 在運行時生成,編譯和使用Java代碼?
- 17. 在C#中生成運行時代碼(結構體,類)#
- 18. 如何在程序運行時生成並編譯C++代碼?
- 19. 當運行代碼時它不響應(但它在後臺運行正常)
- 20. 在Android中連續運行一段代碼
- 21. 如何在android的後臺運行一段代碼?
- 22. 成功從Android Studio運行appium代碼?
- 23. 在運行時生成
- 24. Android HttpResponse響應代碼
- 25. 如何跟蹤用戶的響應來確認框,在運行時從c#代碼生成?
- 26. 這段代碼爲什麼會產生運行時錯誤?
- 27. 在php中生成代碼片段
- 28. 運行代碼時發生gTTS錯誤
- 29. 如何在第一次運行應用程序時運行代碼?
- 30. 在C中找到一段代碼的運行時間
嗯,你爲什麼認爲你可以」在響應塊中設置點擊監聽器?沒有理由你不能。 –
你想知道什麼時候獲取信息嗎? –
@RohitSingh是的,正好。並運行一個像OnClickListener這樣的代碼,在完全加載java文件後需要滿足,所以我不能使用布爾值或類似的東西。 – NiethanX