Reputation: 650
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
}
});
}
}
Upvotes: 0
Views: 659
Reputation: 191738
title.setText("listingId");//fine
That shouldn't be fine...
You must put setContentView
before any findViewById
. That is number one reason why your TextView
is null.
Your callback is fine.
Upvotes: 1
Reputation: 6857
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
}
});
}
}
Upvotes: 3