Tôi hiện đang cố gắng lấy dữ liệu qua cuộc gọi REST API, phân tích cú pháp thông tin tôi cần và sau đó chuyển thông tin đó đến hoạt động mới . Tôi đang sử dụng máy khách HTTP không đồng bộ từ loopj.com cho máy khách REST và sau đó sử dụng mã bên dưới cho các hoạt động hiện tại và tương lai của tôi onClick
và onCreate
.Chuyển dữ liệu từ hoạt động này sang hoạt động khác bằng cách sử dụng bó - không hiển thị trong hoạt động thứ hai
Eclipse không chuyển cho tôi bất kỳ lỗi nào cho bất kỳ mã nào của tôi, nhưng khi tôi cố chạy trong trình mô phỏng, tôi không nhận được gì (ví dụ: màn hình trắng trống) khi hoạt động/chế độ xem mới mở. Tôi đã cố gắng để mã với một URL khác nhau trong REST KHÁCH HÀNG của tôi, nhưng tôi vẫn thấy không có gì. Tôi thậm chí đã thực hiện cuộc gọi API ra khỏi phương trình bằng cách nhận xét thử/nắm bắt trong onClick
và thay đổi venueName
trong số bundle.putString("VENUE_NAME", venueName);
thành searchTerm
. Tuy nhiên, chế độ xem mới xuất hiện nhưng không có gì được hiển thị. Những gì không được thông qua, hoặc những gì tôi quên để làm cho hoạt động thứ hai cho thấy venueName
?
public void onClick(View view) {
Intent i = new Intent(this, ResultsView.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String searchTerm = editText.getText().toString();
//call the getFactualResults method
try {
getFactualResults(searchTerm);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Create the bundle
Bundle bundle = new Bundle();
//Add your data from getFactualResults method to bundle
bundle.putString("VENUE_NAME", venueName);
//Add the bundle to the intent
i.putExtras(bundle);
//Fire the second activity
startActivity(i);
}
Phương pháp trong hoạt động thứ hai sẽ nhận được mục đích và bó và hiển thị nó:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Get the message from the intent
//Intent intent = getIntent();
//String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
//Get the bundle
Bundle bundle = getIntent().getExtras();
//Extract the data…
String venName = bundle.getString(MainActivity.VENUE_NAME);
//Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(venName);
//set the text view as the activity layout
setContentView(textView);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}
Nhờ sự giúp đỡ của bạn. Rất nhiều đánh giá cao.
Đây là một câu trả lời rất ngắn gọn nhưng đầy đủ chi tiết. Cảm ơn bạn đã viết lên rất rõ ràng. Nó giúp tôi hiểu cách sử dụng bó rất nhanh. – raddevus
Cảm ơn. Ví dụ đã giúp tôi. – Edwinfad