Jump to content
Android Forum - A Community For Android Users and Enthusiasts

I having problems adding the value into the list as viewlist after input name and submit ok


Dexter
 Share

Recommended Posts

Hi guys, i'm currently developing an counter app however i was having trouble Working with ListView in Android. Customize ListView, Add item via a Button Click. And also clickable each button in each row. here is my code note spinner 1 (sub view1) is works only for testing purpose spinner 2 (subview2) is where i'm having trouble adding the value into the list with a counter while creating. after that it then allows browsing of a list to retrieve and earlier count and optionally continue that count and prompts for count name on start of a new tally.


package com.example.itallyassigment;

//import android.media.MediaPlayer;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Build;
import android.os.Bundle;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.text.Editable;
import android.text.InputFilter;
import android.text.InputType;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class Itallyassigment extends Activity implements OnClickListener {


// to play while the user clicks the button
// (http://www.youtube.com/watch?v=KFw765mBcak)
// heard the soundpool method was popular than mediaplyer method so i may
// choose either mediaplayer or soundpool just to test the playback.
// media player method - use for music player or video games etc
// Setting up the Mediplayer
// MediaPlayer incrementButtonClick;
// MediaPlayer decrementButtonClick;
// MediaPlayer refreshButtonClick;
// Setting up the SoundPool
// Soundpool method- use it for sound effects
// (http://www.newyyz.com/ntgsite/2012/05/android-using-the-mediaplayer-for-online-streams/)
SoundPool soundPool;
int incrementButtonClick = -1;
int decrementButtonClick = -1;
int refreshButtonClick = -1;

// Setting Max value
public int MAX_VALUE = 9999;
// Setting min value
public int MIN_VALUE = 0;
// setting default value as min value where the numbers cannot reach to
// negative number
public int DEFAULT_VALUE = MIN_VALUE;
// Initial the number value
public int counterValue = DEFAULT_VALUE;
// To convert int into string to output the value
//String strcounter;
public TextView text;

public ArrayAdapter dataAdapter;

private Spinner spinner1;

public Dialog source;

// This function is called when the application starts
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Alternative way to create the methods
init();
openCount();
addItemsOnSpinner1();

}

public void addItemsOnSpinner1() {

spinner1 = (Spinner) findViewById(R.id.spinner1);
List list = new ArrayList();
list.add("list 1");
list.add("list 2");
list.add("list 3");
dataAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter);
}

// This function reads the stored value from a file on the device
//http://www.mybringback.com/tutorial-series/12637/android-internal-storage-with-fileoutputstream/
//http://www.kodejava.org/examples/214.html
private void openCount() {
// TODO Auto-generated method stub
try {
// Open a file and data stream
FileInputStream out = openFileInput("count.bin");
DataInputStream data = new DataInputStream(out);

// Read the binary value from the stream and store in the integer
counterValue = data.readInt();

// Remember to close the streams
data.close();
out.close();
}
catch (FileNotFoundException err) {
// Ignore this error, since is should just mean that the program is run for the first time
}
catch (IOException err) {
showError(err);
}
}

public void init() {
// TODO Auto-generated method stub
// Connect interface elements to properties
Button increments = (Button) findViewById(R.id.increments);
Button decrement = (Button) findViewById(R.id.decrement);
Button reset = (Button) findViewById(R.id.reset);
text = (TextView) findViewById(R.id.textView1);
text.setText(Integer.toString(counterValue));


// Setup ClickListeners
increments.setOnClickListener(this);
decrement.setOnClickListener(this);
reset.setOnClickListener(this);


// set up the button sound and clicklisteners
setVolumeControlStream(AudioManager.STREAM_MUSIC);
soundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
incrementButtonClick = soundPool.load(this, R.raw.increment_sound, 1);
decrementButtonClick = soundPool.load(this, R.raw.decrement_sound, 1);
refreshButtonClick = soundPool.load(this, R.raw.refresh_sound, 1);

// Mediaplayer method and clicklisteners
// incrementButtonClick = MediaPlayer.create(this,R.raw.increment_sound);
// decrementButtonClick = MediaPlayer.create(this,R.raw.decrement_sound);
// refreshButtonClick = MediaPlayer.create(this,R.raw.refresh_sound);

}


// Begin method to view for + and - button to able to perform function when
// the user touches
public void onClick(View v) {
switch (v.getId()) {
// Increase counter by one, update value in user interface and on disk
case R.id.increments:
if (counterValue counterValue++;
//strcounter = Integer.toString(counterValue);
//text.setText(String.valueOf(strcounter));
text.setText(Integer.toString(counterValue));
// Starting the sound
//Mediaplayer method
// incrementButtonClick.start();
saveCount();
soundPool.play(incrementButtonClick, 1, 1, 0, 0, 1);
}
break;
case R.id.decrement:
// Decrease counter by one, update value in user interface and on
// disk
if (counterValue > MIN_VALUE) {
counterValue--;
//strcounter = Integer.toString(counterValue);
//text.setText(String.valueOf(strcounter));
text.setText(Integer.toString(counterValue));
// Starting the sound
//mediaplayer method
// decrementButtonClick.start();
saveCount();
soundPool.play(decrementButtonClick, 1, 1, 0, 0, 1);
}
break;
case R.id.reset:
counterValue = 0;
//strcounter = Integer.toString(counterValue);
text.setText(Integer.toString(counterValue));
// starting the sound
//mediaplayer method
// refreshButtonClick.start();
soundPool.play(refreshButtonClick, 1, 1, 0, 0, 1);
}

}

// This function stores the current value in a file on the device
//http://www.mybringback.com/tutorial-series/12637/android-internal-storage-with-fileoutputstream/
void saveCount() {
try {
// Open a file and data stream
FileOutputStream out = openFileOutput("count.bin", MODE_PRIVATE);
DataOutputStream data = new DataOutputStream(out);

// Write the binary value of the integer to the stream
data.writeInt(counterValue);

// Remember to close the streams
data.close();
out.close();
}
catch (FileNotFoundException err) {
showError(err);
}
catch (IOException err) {
showError(err);
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.main, menu);
// Add two commands to the menu. We only care about the unique id, 0 or 1, and the text for the items
menu.add(Menu.NONE, 0, Menu.NONE, R.string.menu_add);
menu.add(Menu.NONE, 1, Menu.NONE, R.string.menu_edit);
menu.add(Menu.NONE, 2, Menu.NONE, R.string.menu_delete);
return true;
}

// This function is called when the user has chosen a menu item created in
// onCreateOptionsMenu
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == 0) {
AlertDialog.Builder addDialogBuilder = new AlertDialog.Builder(this);
addDialogBuilder.setTitle(getResources().getText(
R.string.dialog_add_title));

Context context = addDialogBuilder.getContext();
LinearLayout layout = new LinearLayout(context);
layout.setOrientation(LinearLayout.VERTICAL);

// Name input label
TextView nameInputLabel = new TextView(this);
nameInputLabel.setText(getResources().getText(
R.string.dialog_edit_name));
layout.addView(nameInputLabel);



// Name input
EditText nameInput = (EditText) source.findViewById(R.id.spinner2);
nameInput.setInputType(InputType.TYPE_CLASS_TEXT);
nameInput.setText("");
layout.addView(nameInput);


addDialogBuilder.setView(layout).setPositiveButton("Add",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// Do something with value!

String name = nameInput.getText().toString();
if (name.equals("")) {
Toast.makeText(getBaseContext(),
getResources().getText(R.string.toast_no_name_message),
Toast.LENGTH_SHORT).show();
}


dataAdapter.add(name);
//spinner1 = (Spinner) findViewById(R.id.spinner1);

}
}
);
addDialogBuilder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// Canceled.
}
});

addDialogBuilder.show();

}
if (item.getItemId() == 1) {
AlertDialog.Builder addDialogBuilder = new AlertDialog.Builder(this);
addDialogBuilder.setTitle(getResources().getText(
R.string.dialog_edit_title));

Context context = addDialogBuilder.getContext();
LinearLayout layout = new LinearLayout(context);
layout.setOrientation(LinearLayout.VERTICAL);

// Name input label
TextView nameInputLabel = new TextView(this);
nameInputLabel.setText(getResources().getText(
R.string.dialog_edit_name));
layout.addView(nameInputLabel);

// Name input
final EditText nameInput = new EditText(this);
nameInput.setInputType(InputType.TYPE_CLASS_TEXT);
nameInput.setText("");
layout.addView(nameInput);


addDialogBuilder.setView(layout).setPositiveButton("Edit",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// Do something with value!
String name = nameInput.getText().toString();
if (name.equals("")) {
Toast.makeText(getBaseContext(),
getResources().getText(R.string.toast_no_name_message),
Toast.LENGTH_SHORT).show();
}


}
}
);
addDialogBuilder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// Canceled.
}
});

addDialogBuilder.show();
}

return true;

}


// This function is called to show the error message of an exception in an alert dialog
void showError(Exception err) {
String msg = getString(R.string.file_error, err.getLocalizedMessage());
new AlertDialog.Builder(this).setMessage(msg).show();
}

}

Untitled.png

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...