Calculating Values inside ArrayList - android

I have an Array List that i am getting Values from the EditText widget and placing them inside an Array List
I would like to do a Calculation and output the total to a Text View
The Program is Running fine it just crashes when i hit Calculate..
ArrayList<String> score = new ArrayList<String>();
public class MyActivity extends Activity {
EditText T1, T2, T3, T4, T5, T6, T7, T8, T9;
TextView total;
int sum = 0;
Button ButtonClear, ButtonScore;
ArrayList<String> score = new ArrayList<String>();
#Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
T1 = (EditText) findViewById(R.id.editText2);
T2 = (EditText) findViewById(R.id.editText3);
T3 = (EditText) findViewById(R.id.editText4);
T4 = (EditText) findViewById(R.id.editText5);
T5 = (EditText) findViewById(R.id.editText6);
T6 = (EditText) findViewById(R.id.editText7);
T7 = (EditText) findViewById(R.id.editText8);
T8 = (EditText) findViewById(R.id.editText9);
T9 = (EditText) findViewById(R.id.editText10);
total = (TextView) findViewById(R.id.textView28);
ButtonScore = (Button) findViewById(R.id.buttonScore);
ButtonClear = (Button) findViewById(R.id.buttonClear);
score.add(T1.getText().toString());
score.add(T2.getText().toString());
score.add(T3.getText().toString());
score.add(T4.getText().toString());
score.add(T5.getText().toString());
score.add(T6.getText().toString());
score.add(T7.getText().toString());
score.add(T8.getText().toString());
score.add(T9.getText().toString());
public void Calculate(View v)
{
for (int i = 0; i < score.size(); i++)
{
sum = Integer.valueOf(score.get(i));
}
total.setText(sum);
}

You are setting integer value to textview therefore it crash,So change
total.setText(sum);
to
total.setText(String.valueOf(sum));
And to calculate sum do like
sum += Integer.valueOf(score.get(i));

Related

error class interface or enum expected - Adding 2 numbers from Android

This is code my to add 2 numbers in Android. Please help me.
public void onButtonclick(View v) {
EditText e1 = (EditText) findViewById(R.id.editText);
EditText e2 = (EditText) findViewById(R.id.editText2);
TextView t1 = (TextView) findViewById(R.id.textView);
int num1 = Integer.parseInt(e1.getText().toString());
int num2 = Integer.parseInt(e2.getText().toString());
int sum = num1 + num2;
t1.setText(Integer.toString(sum));
}
Replace
t1.setText(Integer.toString(sum));
With
t1.setText(""+sum);
Or Bettersolution
t1.setText(String.valueOf(sum));

Android Studio TextView and sharedpreferences

in one activity I save data into the sharedpreferences via:
public void createIt() {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = settings.edit();
Context context = getApplicationContext();
EditText editTextAge = (EditText) findViewById(R.id.editTextAge);
String s = editTextAge.getText().toString();
age = Integer.valueOf(s);
if (age < 16) {
setWeightValues();
setRepValues();
switch (workoutPref) {
case "fitness":
//mat exercises
editor.putString("sprints", "15" );
editor.putString("jogs", "10");
editor.putString("walks", "10" );
break;
}
}
editor.commit();
launchNextactivity();
}
--
and in this new activity, I display 3 specific items from the memory and display them in a textview with this code inside onCreate()
public class WorkoutActivity extends ActionBarActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_workout);
//pagetabview 3 days 3 workouts
TextView txt1 = (TextView) findViewById(R.id.txt1);
String t1 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("Star Jumps", "nothing");
txt1.setText(t1);
TextView txt2 = (TextView) findViewById(R.id.txt1);
String t2 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("Push Ups", "nothing");
txt1.setText(t2);
TextView txt3 = (TextView) findViewById(R.id.txt1);
String t3 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("Sit Ups", "nothing");
txt1.setText(t3);
TextView txt4 = (TextView) findViewById(R.id.txt1);
String t4 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("Plank", "nothing");
txt1.setText(t4);
TextView txt5 = (TextView) findViewById(R.id.txt1);
String t5 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("Rowing", "nothing");
txt1.setText(t5);
TextView txt6 = (TextView) findViewById(R.id.txt1);
String t6 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("Treadmill", "nothing");
txt1.setText(t6);
}
for some reason, it only puts "nothing" in the first textview, and then doesn't even change the other text views they stay as default. please can someone help, im not sure if its my sharedpreference or my way of setting textview
The key you have used for set and get values from shared preference should be the same.
You have not change textview value when finding textviews.
TextView txt1 = (TextView) findViewById(R.id.txt1);
TextView txt2 = (TextView) findViewById(R.id.txt2);
TextView txt3 = (TextView) findViewById(R.id.txt3);
TextView txt4 = (TextView) findViewById(R.id.txt4);
TextView txt5 = (TextView) findViewById(R.id.txt5);
TextView txt6 = (TextView) findViewById(R.id.txt6);
base from your code on putting data, this is how you get the data
getDefaultSharedPreferences(getApplicationContext()).getString("sprints", "nothing");

Score not working

Here's my codes
//declare a boolean variable for score
private int optionTxtView = 0 ;
//Search word
//display score
public void viewWord(View view)
{
score = (TextView)findViewById(R.id.yourScore);
tv2 = (TextView)findViewById(R.id.tv2);
tv3 = (TextView)findViewById(R.id.tv3);
searchWord = (ImageView) findViewById(R.id.searchWord);
wordList = (ListView) findViewById(R.id.wordList);
text = (AutoCompleteTextView) findViewById(R.id.textHere);
wordList = (ListView) findViewById(R.id.wordList);
String s1= search.getText().toString();
String s2= dbHelper.getData(s1);
if(optionTxtView == 0){
//display the score on textview1
tv2.setText(s2);
optionTxtView = 1;
}
else{
//display the score on textview2
tv3.setText(s2);
optionTxtView = 0;
}
calculate();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
wordList.setAdapter(adapter);
adapter.add(text.getText().toString());
adapter.notifyDataSetChanged();
text.setText(null);
}
private void calculate(){
x = Integer.parseInt(tv2.getText().toString());
y = Integer.parseInt(tv3.getText().toString());
z = x + y;
score.setText(Integer.toString(z));
}
So basically i decided to have 3 textviews, score, tv2 and tv3. So the first score for the first word should be in the tv2 and the second score should be in tv3. and the sum of this two textviews should be in score.
After putting text on the textview, it will search for the word from the textview in the database by hitting imagebutton. If the word is in the database, it will automatically put the word in the listview and at the same time it SHOULD display the score on two textviews.
I really need help on this. I tried everything i can but it never adds EXCEPT when the value/number in the textview tv2 and tv3 is set from the properties. But whenever the numbers/value is from the database (because that's what it should be) it NEVER ADDS !
Any help will be highly appreciated. Please help me with my codes.
onCreate Method
//TAKE NOTE: 16 IMAGEBUTTONS
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper =new DBAdapter(this);
search = (EditText) findViewById(R.id.textHere);
words = (EditText) findViewById(R.id.edWord);
scores = (EditText) findViewById(R.id.edScore);
show_addWord = (ImageView) findViewById(R.id.show_addWord);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
wordList.setAdapter(adapter);
score = (TextView)findViewById(R.id.yourScore);
tv2 = (TextView)findViewById(R.id.tv2);
tv3 = (TextView)findViewById(R.id.tv3);
wordList = (ListView) findViewById(R.id.wordList);
text = (AutoCompleteTextView) findViewById(R.id.textHere);
wordList = (ListView) findViewById(R.id.wordList);
blizzard = (ImageView) findViewById(R.id.blizzard);
bomb = (ImageView) findViewById(R.id.bomb);
searchWord = (ImageView) findViewById(R.id.searchWord);
wordList = (ListView) findViewById(R.id.wordList); //this is til 16
image1 = (ImageButton) findViewById(R.id.Button1);
image16 = (ImageButton) findViewById(R.id.Button16);
timer = (TextView) this.findViewById(R.id.timer);
timer.setText("00:00:30");
countDownTimer = new MyCountDownTimer(30000,1000);
final AutoCompleteTextView text = (AutoCompleteTextView) findViewById(R.id.textHere);
final ImageButton image1 = (ImageButton) findViewById(R.id.Button1); //this is til 16
final ImageButton image16 = (ImageButton) findViewById(R.id.Button16);
final int[] myPics = { R.drawable.a, R.drawable.b, R.drawable.c,
R.drawable.e }; //this is til z
//this is til 16
int rando = (int)(Math.random()* 5);
image1.setImageResource(myPics[rando]);
image1.setId(myPics[rando]);
//this is from a -z
OnClickListener myCommoClickListner = new OnClickListener(){
#Override
public void onClick(View arg0) {
Log.i(TAG,"arg0.getId() = " + arg0.getId());
if(arg0.getId()==R.drawable.a){
Log.i(TAG,"arg0.getId()="+arg0.getId());
generatedString=generatedString+"a"; //[PLACEE RESPACTIVE CHARACTEER HERE]
text.setText(generatedString);
((ImageButton) arg0).setImageResource(R.drawable.changea);
if (!timeHasStarted) {
countDownTimer.start();
timeHasStarted = true;
}
else{
if(arg0.getId()==R.drawable.z){
Log.i(TAG,"arg0.getId() = " + arg0.getId());
generatedString = generatedString+"z";
text.setText(generatedString);
((ImageButton) arg0).setImageResource(R.drawable.changez);
if (!timeHasStarted) {
countDownTimer.start();
timeHasStarted = true;
}
}
}
};
image1.setOnClickListener(myCommoClickListner);
image2.setOnClickListener(myCommoClickListner);
image3.setOnClickListener(myCommoClickListner);
image4.setOnClickListener(myCommoClickListner);
image5.setOnClickListener(myCommoClickListner);
image6.setOnClickListener(myCommoClickListner);
image7.setOnClickListener(myCommoClickListner);
image8.setOnClickListener(myCommoClickListner);
image9.setOnClickListener(myCommoClickListner);
image10.setOnClickListener(myCommoClickListner);
image11.setOnClickListener(myCommoClickListner);
image12.setOnClickListener(myCommoClickListner);
image13.setOnClickListener(myCommoClickListner);
image14.setOnClickListener(myCommoClickListner);
image15.setOnClickListener(myCommoClickListner);
image16.setOnClickListener(myCommoClickListner);
}
LOGCAT
it never adds EXCEPT when the value/number in the textview tv2 and tv3
is set from the properties
You will need to put your code in the onClick button or anything that listen to the user's action. After that, you can get your textview's value and do something with it.
From the look of your code, i suggest you to move all of the initializations in the onCreate:
//move this code to onCreate
score = (TextView)findViewById(R.id.yourScore);
tv2 = (TextView)findViewById(R.id.tv2);
tv3 = (TextView)findViewById(R.id.tv3);
searchWord = (ImageView) findViewById(R.id.searchWord);
wordList = (ListView) findViewById(R.id.wordList);
text = (AutoCompleteTextView) findViewById(R.id.textHere);
wordList = (ListView) findViewById(R.id.wordList);
//also move this
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>());
wordList.setAdapter(adapter);
After that, call your viewWord() in the onClick (or anything you like), example :
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
viewWord(v); //v is your button
}
});
UPDATE
After looking the exception in your logcat, it seems the error occurred because the integer has some whitespaces : "2 " <- a space after 2
Try :
x = Integer.parseInt(tv2.getText().toString().replaceAll("\\s",""));
y = Integer.parseInt(tv3.getText().toString().replaceAll("\\s",""));
The idea is to remove all of the whitespaces before parse it to Integer.
Feel free to comment if you have some questions or if i miss understood you :)

How to getText the multiple EditText value in android using For Loop

In My App i have 10 Edittext and 10 TextView
I have created instance for the both EditText and TextView like
String[] messageText=new String[10];
String[] messageEdit=new String[10];
TextView oTextView1 = (TextView) findViewById(R.id.Tab_common1_EditText);
TextView oTextView2 = (TextView) findViewById(R.id.Tab_common2_EditText);
TextView oTextView3 = (TextView) findViewById(R.id.Tab_common3_EditText);
TextView oTextView4 = (TextView) findViewById(R.id.Tab_common4_EditText);
TextView oTextView5 = (TextView) findViewById(R.id.Tab_common5_EditText);
TextView oTextView6 = (TextView) findViewById(R.id.Tab_common6_EditText);
TextView oTextView7 = (TextView) findViewById(R.id.Tab_common7_EditText);
TextView oTextView8 = (TextView) findViewById(R.id.Tab_common8_EditText);
TextView oTextView9 = (TextView) findViewById(R.id.Tab_common9_EditText);
TextView oTextView10 = (TextView) findViewById(R.id.Tab_common10_EditText);
EditText oEditTextHiden1 = (EditText) findViewById(R.id.Tab_Hidencommon1_EditText);
EditText oEditTextHiden2 = (EditText) findViewById(R.id.Tab_Hidencommon2_EditText);
EditText oEditTextHiden3 = (EditText) findViewById(R.id.Tab_Hidencommon3_EditText);
EditText oEditTextHiden4 = (EditText) findViewById(R.id.Tab_Hidencommon4_EditText);
EditText oEditTextHiden5 = (EditText) findViewById(R.id.Tab_Hidencommon5_EditText);
EditText oEditTextHiden6 = (EditText) findViewById(R.id.Tab_Hidencommon6_EditText);
EditText oEditTextHiden7 = (EditText) findViewById(R.id.Tab_Hidencommon7_EditText);
EditText oEditTextHiden8 = (EditText) findViewById(R.id.Tab_Hidencommon8_EditText);
EditText oEditTextHiden9 = (EditText) findViewById(R.id.Tab_Hidencommon9_EditText);
EditText oEditTextHiden10 = (EditText) findViewById(R.id.Tab_Hidencommon10_EditText);
now i need to get all the TextView getText() and EditText getText()
I have try some method but it is not working
for (int i = 0; i < 10; i++) {
messageText[i] = (oTextView+i).getText().toString();//it says oTextView cannot be resolved to a variable
messageEdit[i] = (oEditTextHiden+i).getText().toString();
}
Log.i("message", "message :"+Arrays.deepToString(messageText)+" "+Arrays.deepToString(messageEdit));
Store the ids of the EditText and loop over them, since the View ids are integers, you can do that easily like so :
ArrayList<String> values = new ArrayList<String>();
int[] ids = new int[]{R.id.editText1,R.id.editText2,R.id.editText3};//and so on
for(int id : ids){
EditText t = (EditText) findViewById(id);
values.add(t.getText().toString());
}
Or if you only want the text and don't want to do anything else with the EditText view itself, you could make it in one line this:
for(int id : ids) values.add(((EditText)findViewById(id)).getText().toString());
Add all TextView and EdiText in Array Like this
TextView[] oTextView = { oTextView1, oTextView2, oTextView3,
oTextView4, oTextView5, oTextView6, oTextView7, oTextView8,
oTextView9, oTextView10 };
EditText[] oEditTextHiden = { oEditTextHiden1, oEditTextHiden2,
oEditTextHiden3, oEditTextHiden4, oEditTextHiden5,
oEditTextHiden6, oEditTextHiden7, oEditTextHiden8,
oEditTextHiden9, oEditTextHiden10 };
Then getText() Should look like this
for (int i = 0; i < 10; i++) {
messageText[i] = oTextView[i].getText().toString();
messageEdit[i] = oEditTextHiden[i].getText().toString();
}
String[] messageText=new String[10];
String[] messageEdit=new String[10];
TextView[] textViews = new TextView[10];
textViews[0] = (TextView) findViewById(R.id.Tab_common1_EditText);
textViews[1] = (TextView) findViewById(R.id.Tab_common2_EditText);
textViews[2] = (TextView) findViewById(R.id.Tab_common3_EditText);
textViews[3] = (TextView) findViewById(R.id.Tab_common4_EditText);
textViews[4] = (TextView) findViewById(R.id.Tab_common5_EditText);
textViews[5] = (TextView) findViewById(R.id.Tab_common6_EditText);
textViews[6] = (TextView) findViewById(R.id.Tab_common7_EditText);
textViews[7] = (TextView) findViewById(R.id.Tab_common8_EditText);
textViews[8] = (TextView) findViewById(R.id.Tab_common9_EditText);
textViews[9] = (TextView) findViewById(R.id.Tab_common10_EditText);
EditText[] editTexts = new EditText[10];
editTexts[0] = (EditText) findViewById(R.id.Tab_Hidencommon1_EditText);
editTexts[1] = (EditText) findViewById(R.id.Tab_Hidencommon2_EditText);
editTexts[2] = (EditText) findViewById(R.id.Tab_Hidencommon3_EditText);
editTexts[3] = (EditText) findViewById(R.id.Tab_Hidencommon4_EditText);
editTexts[4] = (EditText) findViewById(R.id.Tab_Hidencommon5_EditText);
editTexts[5] = (EditText) findViewById(R.id.Tab_Hidencommon6_EditText);
editTexts[6] = (EditText) findViewById(R.id.Tab_Hidencommon7_EditText);
editTexts[7] = (EditText) findViewById(R.id.Tab_Hidencommon8_EditText);
editTexts[8] = (EditText) findViewById(R.id.Tab_Hidencommon9_EditText);
editTexts[9] = (EditText) findViewById(R.id.Tab_Hidencommon10_EditText);
for (int i = 0; i < 10; i++) {
messageText[i] = textViews[i].getText().toString();
messageEdit[i] = editTexts[i].getText().toString();
}
Log.i("message", "message :"+Arrays.deepToString(messageText)+" "+Arrays.deepToString(messageEdit));
The best way to do this is to use the tag associated with the textview.
For example :
In Xml you need to create TextView and editText as following :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="#+id/llParent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tag="tv1"
android:text="TextView1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tag="et1"
android:text="EditText1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tag="tv2"
android:text="TextView2" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:tag="et2"
android:text="EditText2" />
===== Similarly 10 Textviews and EditTexts========
</LinearLayout>
In Code :
String[] messageText = new String[10];
String[] messageEdit = new String[10];
LinearLayout llParent = (LinearLayout) findViewById(R.id.llParent);
for (int i = 1; i <= 10; i++) {
messageText[i - 1] = ((TextView) llParent.findViewWithTag("tv" + i))
.getText().toString();
messageEdit[i - 1] = ((EditText) llParent.findViewWithTag("et" + i))
.getText().toString();
}
Happy Coding.... :-)
Try Like This :-
ArrayList<TextView> arrayListTextViews = new ArrayList<TextView>();
TextView oTextView1 = (TextView) findViewById(R.id.Tab_common1_EditText);
TextView oTextView2 = (TextView) findViewById(R.id.Tab_common2_EditText);
TextView oTextView3 = (TextView) findViewById(R.id.Tab_common3_EditText);
TextView oTextView4 = (TextView) findViewById(R.id.Tab_common4_EditText);
TextView oTextView5 = (TextView) findViewById(R.id.Tab_common5_EditText);
TextView oTextView6 = (TextView) findViewById(R.id.Tab_common6_EditText);
TextView oTextView7 = (TextView) findViewById(R.id.Tab_common7_EditText);
TextView oTextView8 = (TextView) findViewById(R.id.Tab_common8_EditText);
TextView oTextView9 = (TextView) findViewById(R.id.Tab_common9_EditText);
TextView oTextView10 = (TextView) findViewById(R.id.Tab_common10_EditText);
arrayListTextViews.add(oTextView1);
arrayListTextViews.add(oTextView2);
arrayListTextViews.add(oTextView3);
arrayListTextViews.add(oTextView4);
arrayListTextViews.add(oTextView5);
arrayListTextViews.add(oTextView6);
arrayListTextViews.add(oTextView7);
arrayListTextViews.add(oTextView8);
arrayListTextViews.add(oTextView9);
arrayListTextViews.add(oTextView10);
and then access textviews from arrayListTextViews in the loop.
Also do the same for Your Edittext.
the best way is to use the getIdentifier method in the Resources class
something like that
messageText[i] = (TextView) getActivity().findViewById(getResources().getIdentifier("Tab_common"+i+"_EditText", "id", context.getPackageName()));
messageEdit[i] = (EditText) getActivity().findViewById(getResources().getIdentifier("Tab_Hidencommon"+i+"_EditText", "id", context.getPackageName()));

Concatenation of EditText

in my Android application,
I have 4 EditText where the user puts his information
And I want to create an other EditText, where all information in the 4 EditText are concatenated... But I really don't arrive to do that ....
Here is my code :
private Editable mtext1 = null;
private Editable mtext2 = null;
private Editable mtext3 = null;
private Editable mtext4 = null;
EditText mtext5;
PendingIntent mNfcPendingIntent;
IntentFilter[] mWriteTagFilters;
IntentFilter[] mNdefExchangeFilters;
/** Called when the activity is first created. */
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
setContentView(R.layout.main);
findViewById(R.id.write_tag).setOnClickListener(mTagWriter);
//final Button quitBut = (Button) findViewById(R.id.button1);
mNoteBarCode = ((EditText) findViewById(R.id.noteBareCode));
mNoteAirport = ((EditText) findViewById(R.id.noteAirport));
mNoteFlightNumber = ((EditText) findViewById(R.id.noteFlightNumber));
mNoteName = ((EditText) findViewById(R.id.noteName));
mNote = ((EditText) findViewById(R.id.noteFull));
mtext1 = mNoteBarCode.getText();
mtext2 = mNoteAirport.getText();
mtext3 = mNoteFlightNumber.getText();
mtext4 = mNoteName.getText();
mtext5 = (EditText) mtext1 + (EditText) mtext2 + .......; // doesn't work
mtext5 = (EditText) mNote.getText();
String firstString = firstET.getText().toString(); // get string from first EditText
String secondString = secondET.getText().toString(); // get string from second EditText
EditText concatenatedET = (EditText) findViewById(R.id.your_edittext); //declare EditText you want them put in together
concatentatedET.setText(firstString + secondString); // put the string values in
Let me know if this works for you or if you need a better explanation

Categories

Resources