Android 2.3.3
ホームとヒストリーの2つのアクティビティがあります。履歴に動的リストビュー(カスタムアダプタを使用)があり、リストビューにデータがあります。アイテムがクリックされると、アイテムの値がホームアクティビティに反映されることになっています(テキストビューとエディットテキストが入力されている必要があります)。
以下はコードです...
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
TextView txtExp = (TextView) arg1.findViewById(R.id.txtView_History_Expression);
TextView txtRes = (TextView) arg1.findViewById(R.id.txtView_History_Result);
String ret_Exp = txtExp.getText().toString();
String ret_Res = txtRes.getText().toString();
System.out.println("exp = "+ret_Exp+" res = "+ret_Res);
ma = new MainActivity();
TextView ma_prev = (TextView) ma.findViewById(R.id.txtViewPrevious);
EditText ma_Res = (EditText) ma.findViewById(R.id.edtxtInput);
ma_prev.setText("");
ma_prev.setText(ret_Exp);
ma_Res.setText("");
ma_Res.setText(ret_Res);
}
上記のコードを使用すると、nullpointer例外が発生します...
03-17 14:39:42.199: E/AndroidRuntime(20411): java.lang.NullPointerException
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.app.Activity.findViewById(Activity.java:1647)
03-17 14:39:42.199: E/AndroidRuntime(20411): at com.mobilevoiceapps.advancedvoicecalculatorfree.History.onItemClick(History.java:207)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.widget.ListView.performItemClick(ListView.java:3744)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1991)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.os.Handler.handleCallback(Handler.java:587)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.os.Handler.dispatchMessage(Handler.java:92)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.os.Looper.loop(Looper.java:130)
03-17 14:39:42.199: E/AndroidRuntime(20411): at android.app.ActivityThread.main(ActivityThread.java:3687)
03-17 14:39:42.199: E/AndroidRuntime(20411): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 14:39:42.199: E/AndroidRuntime(20411): at java.lang.reflect.Method.invoke(Method.java:507)
03-17 14:39:42.199: E/AndroidRuntime(20411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
03-17 14:39:42.199: E/AndroidRuntime(20411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
03-17 14:39:42.199: E/AndroidRuntime(20411): at dalvik.system.NativeStart.main(Native Method)
リストビュー行のXMLは次のとおりです::::
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp" >
<TextView
android:id="@+id/txtView_History_Count"
android:layout_width="0dip"
android:layout_height="50dp"
android:layout_weight="0.20"
android:text="Number"
android:textColor="#FFFFFF"
android:textSize="22dp"
android:paddingLeft="5dp"
android:gravity="center" />
<LinearLayout
android:id="@+id/ll2"
android:layout_width="0dip"
android:layout_height="50dp"
android:layout_weight="0.80"
android:orientation="vertical"
android:paddingLeft="5dp" >
<TextView
android:id="@+id/txtView_History_Result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Result"
android:textColor="#316DA2"
android:textSize="22dp" />
<TextView
android:id="@+id/txtView_History_Expression"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Expression"
android:textColor="#FFFFFF"
android:textSize="15dp" />
</LinearLayout>
</LinearLayout>
私はそれを正しい方法でやっているとは思いません。誰かがこれを行う方法を教えてもらえますか...