Моя проблема кажется слишком сложной для меня :/
У меня есть основная деятельность:
setContentView(R.layout.main_activity);
(...)
LinearLayout mainLinearLayout;
mainLinearLayout = (LinearLayout)findViewById(R.id.mainLinearLayout);
final JSONObject user = json_user.getJSONObject(0);
ContactListData contactList = new ContactListData();
contactList.AffLayoutData(this, user, mainLinearLayout);
Я хочу раздуть элементы в макете main_activity через класс ContactListData. Я хочу использовать для этого определенный класс, потому что мне нужно повторно использовать эту инфляцию контактов в другой части моего приложения.
Вот мой ContactListData.java:
public class ContactListData extends Activity {
public void AffLayoutData(Context context, JSONObject contact, LinearLayout mainLinearLayout) {
try {
LinearLayout ll;
// > Here, a lot of layouts are inflated in main_activity :
ll = (LinearLayout) View.inflate(context, R.layout.contact_detail_separateur_titre, null);
((TextView) ll.findViewById(R.id.titre)).setText("Téléphone");
// (...) blablabla
// And there are buttons with OnClickListener :
((FrameLayout) ll.findViewById(R.id.primary_action_view_container)).setOnClickListener(mSMSActionClickListener);
((FrameLayout) ll.findViewById(R.id.primary_action_view_container)).setTag(contact.getString("Phone"));
// (...) blablabla
// Finally, last layout is inflated :
mainLinearLayout.addView(ll);
} catch (JSONException e) {
e.printStackTrace();
Log.e("GEDE JSONException", null);
}
}
/** My onClickListener of previous buttons */
protected final OnClickListener mSMSActionClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", v.getTag().toString(), null));
startActivity(intent);
}
};
. Все накачано правильно. Но когда я нажимаю на кнопку, у меня есть эта ошибка:
04-28 23:37:51.934: W/dalvikvm(30918): threadid=1: поток завершается с необработанным исключением (группа=0x41bd3700) 04-28 23:37:51.934: E/AndroidRuntime(30918): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 04-28 23:37:51.934: E/AndroidRuntime(30918): java.lang.NullPointerException 04-28 23:37:51.934: E/AndroidRuntime(30918): в android.content.ContextWrapper.getApplicationContext(ContextWrapper.java: 109) 04-28 23:37:51.934: E/AndroidRuntime(30918): at biz.jchambon.gedm.ContactListData$5.onClick(ContactListData.java:302)
Я безуспешно пытался запустить Intent.ACTION_VIEW в родительском действии (статическая/нестатическая проблема...). Кто мог бы мне помочь?