如何在回调中使用 setText? [英] How do I use setText from within a callback?
本文介绍了如何在回调中使用 setText?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我下面的代码中,我可以从我的第一个 setText()
调用中编辑文本,但不能从回调中编辑.
我收到的错误是回调中标题的 NullPointerException.
如何设置它以便我可以在回调中编辑文本?
In my code below I am able to edit a text from my first setText()
call but not from within the callback.
The error I receive is a NullPointerException for title in the callback.
How do I set this up so I can edit the text from within the callback?
public class ListingActivity extends AppCompatActivity {
final String TAG = "ListingActivity";
TextView title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
title = (TextView)findViewById(R.id.tvTitle);
Intent intent = getIntent();
final String listingId = intent.getStringExtra("ObjectId");
setContentView(R.layout.listing_activity);
Log.e(TAG, "listingId: " + listingId);
title.setText("listingId");//fine
ListingManager.getListing(listingId, new ListingCB() {
@Override
public void done(String error, Listing listing) {
title.setText("listingId");//null pointer error
}
});
}
}
推荐答案
你的 setContentView()
方法必须在使用 findViewById()
方法提供引用之前调用,所以你的代码将是 -
Your setContentView()
method must be called before giving references using findViewById()
method, so your code will be -
public class ListingActivity extends AppCompatActivity {
final String TAG = "ListingActivity";
TextView title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listing_activity);
title = (TextView)findViewById(R.id.tvTitle);
Intent intent = getIntent();
final String listingId = intent.getStringExtra("ObjectId");
Log.e(TAG, "listingId: " + listingId);
title.setText("listingId");//fine
ListingManager.getListing(listingId, new ListingCB() {
@Override
public void done(String error, Listing listing) {
title.setText("listingId");//null pointer error
}
});
}
}
这篇关于如何在回调中使用 setText?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文