Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid ListView with 2 TextViews and 1 Button
    primarykey
    data
    text
    <p>I'm trying to create a ListView with 2 TextViews and 1 Button. When the users click in the button the activity will finish(); and pass the result to another view. I followed <a href="http://techdroid.kbeanie.com/2009/07/custom-listview-for-android.html" rel="nofollow">this tutorial </a>. But for some reason when i click to start that activity my application crashes! Here is the 3 files from my app that are relevant. </p> <p>List Structure Data:</p> <pre><code>public class formulasListData { private String formulasName; private String formulasDefinition; public formulasListData(String formulasName, String formulasDefinition) { super(); this.formulasName = formulasName; this.formulasDefinition = formulasDefinition; } public String getFormulasName() { return formulasName; } public void setFormulasName(String formulasName) { this.formulasName = formulasName; } public String getFormulasDefinition() { return formulasDefinition; } public void setFormulasDefinition(String formulasDefinition) { this.formulasDefinition = formulasDefinition; } } </code></pre> <p>The List Adapter:</p> <pre><code>public class formulasListAdapter extends BaseAdapter implements OnClickListener { private Context context; private List&lt;formulasListData&gt; formulasList; public formulasListAdapter(Context context, List&lt;formulasListData&gt; formulasList) { this.context = context; this.formulasList = formulasList; } @Override public int getCount() { return formulasList.size(); } @Override public Object getItem(int position) { return formulasList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View rowView, ViewGroup parent) { formulasListData entry = formulasList.get(position); if(rowView == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); rowView = inflater.inflate(R.layout.formulas_row, null); } TextView formulasName = (TextView) rowView.findViewById(R.id.formulas_name); formulasName.setText(entry.getFormulasName()); TextView formulasDefinition = (TextView) rowView.findViewById(R.id.formulas_definition); formulasDefinition.setText(entry.getFormulasDefinition()); Button btnSelect = (Button) rowView.findViewById(R.id.selectFormula); btnSelect.setFocusableInTouchMode(false); btnSelect.setFocusable(false); btnSelect.setOnClickListener(this); btnSelect.setTag(entry); return rowView; } @Override public void onClick(View view) { formulasListData entry = (formulasListData) view.getTag(); } } </code></pre> <p>And the activity that should display the list.</p> <pre><code>public class FormulasList extends Activity { private static final int FORMULA_0 = 0; private static final int FORMULA_1 = 1; private static final int FORMULA_2 = 2; private static final int FORMULA_3 = 3; private static final int FORMULA_4 = 4; private static final int FORMULA_5 = 5; private static final int FORMULA_6 = 6; // private static final int FORMULA_7 = 7; public void onCreate(Bundle savedInstance) { super.onCreate(savedInstance); ListView formulasListView = (ListView) findViewById(R.id.formulas_list); formulasListView.setClickable(true); final List&lt;formulasListData&gt; formulasList = new ArrayList&lt;formulasListData&gt;(); final String[] formulasName = new String[] {"Circunference of a Circle:", "Area of a Circle:", "Volume of a Sphere:", "Area Triangle:", "Area Square:", "Volume of a Cube:", "Pithagorean Theorem:"}; final String[] formulasDefinition = new String[] {"2 × π × r", "π × r²", "(4/3) × π × r³", "(b × h)/2", "side²", "side³", "a² + b² = c²"}; // formulasList.add(new formulasListData(formulasName, formulasDefinition)); formulasList.add(new formulasListData(formulasName[0], formulasDefinition[0])); formulasList.add(new formulasListData(formulasName[1], formulasDefinition[1])); formulasList.add(new formulasListData(formulasName[2], formulasDefinition[2])); formulasList.add(new formulasListData(formulasName[3], formulasDefinition[3])); formulasList.add(new formulasListData(formulasName[4], formulasDefinition[4])); formulasList.add(new formulasListData(formulasName[5], formulasDefinition[5])); formulasList.add(new formulasListData(formulasName[6], formulasDefinition[6])); SharedPreferences settings = getSharedPreferences(SettingsActivity.PREF_NAME, MODE_PRIVATE); SettingsActivity.newTheme = settings.getInt("themeCustom", 0); if(SettingsActivity.newTheme == SettingsActivity.THEME_DARK) { setTheme(R.style.DarkTheme); } else if(SettingsActivity.newTheme == SettingsActivity.THEME_LIGHT){ setTheme(R.style.LightTheme); } else if(SettingsActivity.newTheme == SettingsActivity.THEME_COLORS) { setTheme(R.style.ColorsTheme); } else { setTheme(R.style.AppTheme); } setContentView(R.layout.activity_formulas); formulasListAdapter adapter = new formulasListAdapter(this, formulasList); formulasListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; arg0, View view, int position,long index) { Intent intent= getIntent(); Bundle b = new Bundle(); switch (position) { case FORMULA_0: b.putString("key0", formulasDefinition[0]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; case FORMULA_1: b.putString("key0", formulasDefinition[1]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; case FORMULA_2: b.putString("key0", formulasDefinition[2]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; case FORMULA_3: b.putString("key0", formulasDefinition[3]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; case FORMULA_4: b.putString("key0", formulasDefinition[4]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; case FORMULA_5: b.putString("key0", formulasDefinition[5]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; case FORMULA_6: b.putString("key0", formulasDefinition[6]); intent.putExtras(b); setResult(RESULT_OK, intent); finish(); break; default: break; } } }); formulasListView.setAdapter(adapter); } } </code></pre> <p>Thank you very much!! </p> <p>EDIT: Here is the LogCat</p> <pre><code>05-01 20:06:54.436: D/libEGL(4820): loaded /system/lib/egl/libEGL_tegra.so 05-01 20:06:54.456: D/libEGL(4820): loaded /system/lib/egl/libGLESv1_CM_tegra.so 05-01 20:06:54.466: D/libEGL(4820): loaded /system/lib/egl/libGLESv2_tegra.so 05-01 20:06:54.486: D/OpenGLRenderer(4820): Enabling debug mode 0 05-01 20:06:54.536: D/dalvikvm(4820): GC_CONCURRENT freed 170K, 4% free 7509K/7808K, paused 4ms+10ms, total 38ms 05-01 20:06:59.976: D/AndroidRuntime(4820): Shutting down VM 05-01 20:06:59.976: W/dalvikvm(4820): threadid=1: thread exiting with uncaught exception (group=0x40cde930) 05-01 20:06:59.976: E/AndroidRuntime(4820): FATAL EXCEPTION: main 05-01 20:06:59.976: E/AndroidRuntime(4820): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gabilheri.marcuscalculatorv2/com.gabilheri.marcuscalculatorv2.FormulasList}: java.lang.NullPointerException 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.ActivityThread.access$600(ActivityThread.java:141) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.os.Handler.dispatchMessage(Handler.java:99) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.os.Looper.loop(Looper.java:137) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.ActivityThread.main(ActivityThread.java:5041) 05-01 20:06:59.976: E/AndroidRuntime(4820): at java.lang.reflect.Method.invokeNative(Native Method) 05-01 20:06:59.976: E/AndroidRuntime(4820): at java.lang.reflect.Method.invoke(Method.java:511) 05-01 20:06:59.976: E/AndroidRuntime(4820): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 05-01 20:06:59.976: E/AndroidRuntime(4820): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 05-01 20:06:59.976: E/AndroidRuntime(4820): at dalvik.system.NativeStart.main(Native Method) 05-01 20:06:59.976: E/AndroidRuntime(4820): Caused by: java.lang.NullPointerException 05-01 20:06:59.976: E/AndroidRuntime(4820): at com.gabilheri.marcuscalculatorv2.FormulasList.onCreate(FormulasList.java:30) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.Activity.performCreate(Activity.java:5104) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 05-01 20:06:59.976: E/AndroidRuntime(4820): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 05-01 20:06:59.976: E/AndroidRuntime(4820): ... 11 more </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload