我的问题似乎是太复杂了我:/呼叫ACTION_VIEW意图
我有这样的主要活动:
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):线程ID = 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):at 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,但没有成功(静态/非静态问题...)。谁能帮助我?
谢谢您的回答;我有同样的想法(我忘了复制/粘贴setTag线)。当我在startActivity(intent)之前执行Log.d(“Test getTag”,v.getTag()。toString())时,我可以看到它在控制台中工作:/ – Jerry
我明白了,上下文未定义。 – Jerry