Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

app crash after change from java string to xml string array

$
0
0

public class newUnitConverter extends Activity implements OnClickListener, AdapterView.OnItemSelectedListener{

/** STRINGS */
String[] strings = 
    {
        getResources().getString(R.array.my_string_array), };

String[] subs = 
    {
        getResources().getString(R.array.my_string_array_sub), 
    };

int arr_images[] = { R.drawable.temperature, R.drawable.weight, R.drawable.legnth, R.drawable.power, 
        R.drawable.energy, R.drawable.velocity, R.drawable.area, R.drawable.volume};

private Spinner UnitSpinner;
private TextView inputValue;
private Spinner SpinnerFrom;
private Spinner SpinnerTo;
private Button ButtonConvert;
private TextView ResultView;
ArrayAdapter<String> UnitArray;
ArrayAdapter<String> UnitArrayadapter;
private Strategy currentStrategy;
private String unitfrom;
private String unitto;
private static newUnitConverter instance;


@SuppressLint("ShowToast")
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    final Intent intent = getIntent();
    String scheme = intent.getScheme();
    if(scheme != null){
        final Uri myURI=intent.getData();
        String queryString = new String();

        if(myURI!=null)
        {
            queryString = myURI.getQuery();
        }
        if (queryString != null)
        {
            final String[] arrParameters = queryString.split("&");
            for (final String tempParameterString : arrParameters)
            {
                final String[] arrTempParameter = tempParameterString.split("=");
                if (arrTempParameter.length >= 2)
                {
                    final String parameterValue = arrTempParameter[1];
                    //do something with the parameters
                    Toast.makeText(this, parameterValue, 500).show();
                }
            }
        }

    }


    setContentView(R.layout.mainpage);

    /** Hide Auto Keyboard */        
    getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    /** Hide Auto Keyboard End here */  

    UnitSpinner = (Spinner)findViewById(R.id.UnitSpinner);
    UnitSpinner.setOnItemSelectedListener(this);
    UnitArray=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
    UnitArray.setDropDownViewResource(android.R.layout.simple_expandable_list_item_1);
    UnitSpinner.setAdapter(new UnitArray(newUnitConverter.this, R.layout.row,strings));

    SpinnerFrom = (Spinner)findViewById(R.id.SpinnerFrom);
    SpinnerFrom.setOnItemSelectedListener(this);
    SpinnerTo = (Spinner)findViewById(R.id.SpinnerTo);
    SpinnerTo.setOnItemSelectedListener(this);
    UnitArrayadapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item); 
    UnitArrayadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    SpinnerFrom.setAdapter(UnitArrayadapter);
    SpinnerTo.setAdapter(UnitArrayadapter);
    UnitArrayadapter.setNotifyOnChange(true);
    ResultView = (TextView)findViewById(R.id.TextViewResult);
    ResultView.setClickable(false);
    ButtonConvert = (Button)findViewById(R.id.Button01);
    ButtonConvert.setOnClickListener(this);
    inputValue = (TextView)findViewById(R.id.EditTextValue);

    //initialization
    currentStrategy = new Temperature();
    instance = this;
}

//for Icons
public class UnitArray extends ArrayAdapter<String>{
    public UnitArray(Context context, int textViewResourceId,   String[] objects) {
        super(context, textViewResourceId, objects);
    }

    @Override
    public View getDropDownView(int position, View convertView,ViewGroup parent) {
        return getCustomView(position, convertView, parent);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return getCustomView(position, convertView, parent);
    }

    public View getCustomView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater=getLayoutInflater();
        View row=inflater.inflate(R.layout.row, parent, false);
        TextView label=(TextView)row.findViewById(R.id.SelectUnits);


        label.setText(
                getResources().getString(R.array.my_string_array));

        TextView sub=(TextView)row.findViewById(R.id.sub);
        sub.setText(subs[position]);

        ImageView icon=(ImageView)row.findViewById(R.id.image);
        icon.setImageResource(arr_images[position]);

        return row;
    }
}


public static newUnitConverter getInstance(){
    return instance;
}

public void onItemSelected(AdapterView<?> parent){    
}

public void onNothingSelected(AdapterView<?> parent){

}

public void onItemSelected(AdapterView<?> parent, View v,
        int position, long id){

    if(v.getParent() == UnitSpinner){

        switch(position){
        case 0:
            setStrategy(new Temperature());
            break;

        case 1:
            setStrategy( new Weight());
            break;

        case 2:
            setStrategy(new Length());
            break;

        case 3:
            setStrategy(new Power());
            break;

        case 4:
            setStrategy(new Energy());
            break;

        case 5:
            setStrategy(new Velocity());
            break;

        case 6:
            setStrategy(new Area());
            break;

        case 7:
            setStrategy(new Volume());
            break;
        }


        fillFromToSpinner(position);

        SpinnerFrom.setSelection(0);
        SpinnerTo.setSelection(0);

        //If only first spinner is selected and
        //the from and to spinners are not clicked at all
        unitfrom = (String)(SpinnerFrom.getItemAtPosition(0).toString());
        unitto = (String)(SpinnerTo.getItemAtPosition(0).toString());

        //reset the result
        ResultView.setText("");


    }
    else if(v.getParent() == SpinnerFrom){
        unitfrom = (String)(SpinnerFrom.getSelectedItem().toString());  
    }

    else if(v.getParent() == SpinnerTo){
        unitto = (String)(SpinnerTo.getSelectedItem().toString());
    }
}   


private void fillFromToSpinner(int position){

    switch(position)
    {
    case 0:
        fillSpinnerWithTempUnit();
        break;

    case 1:
        fillSpinnerWithWeightUnit();
        break;

    case 2:
        fillSpinnerWithLengthUnit();
        break;

    case 3:
        fillSpinnerWithPowerUnit();
        break;

    case 4:
        fillSpinnerWithenErgyUnit();
        break;

    case 5:
        fillSpinnerWithVelocityUnit();
        break;

    case 6:
        fillSpinnerWithAreaUnit();
        break;

    case 7:
        fillSpinnerWithVolumeUnit();
        break;
    }

}

private void fillSpinnerWithTempUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.temperatureunitc));
    UnitArrayadapter.add(getResources().getString(R.string.temperatureunitf));
    UnitArrayadapter.add(getResources().getString(R.string.temperatureunitkelvin));
    UnitArrayadapter.notifyDataSetChanged();
}

private void fillSpinnerWithWeightUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.weightunitkg));
    UnitArrayadapter.add(getResources().getString(R.string.weightunitgm));
    UnitArrayadapter.add(getResources().getString(R.string.weightunitlb));
    UnitArrayadapter.add(getResources().getString(R.string.weightunitounce));
    UnitArrayadapter.add(getResources().getString(R.string.weightunitmg));
    UnitArrayadapter.notifyDataSetChanged();
}

private void fillSpinnerWithLengthUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitmile));
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitkm));
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitm));
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitcm));
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitmm));
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitinch));
    UnitArrayadapter.add(getResources().getString(R.string.lengthunitfeet));
}

private void fillSpinnerWithPowerUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.powerunitwatts));
    UnitArrayadapter.add(getResources().getString(R.string.powerunithorseposer));
    UnitArrayadapter.add(getResources().getString(R.string.powerunitkilowatts));
}

private void fillSpinnerWithenErgyUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.energyunitcalories));
    UnitArrayadapter.add(getResources().getString(R.string.energyunitjoules));
    UnitArrayadapter.add(getResources().getString(R.string.energyunitkilocalories));

}

private void fillSpinnerWithVelocityUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.velocityunitkmph));
    UnitArrayadapter.add(getResources().getString(R.string.velocityunitmilesperh));
    UnitArrayadapter.add(getResources().getString(R.string.velocityunitmeterpers));
    UnitArrayadapter.add(getResources().getString(R.string.velocityunitfeetpers));
}

private void fillSpinnerWithAreaUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.areaunitsqkm));
    UnitArrayadapter.add(getResources().getString(R.string.areaunitsqmiles));
    UnitArrayadapter.add(getResources().getString(R.string.areaunitsqm));
    UnitArrayadapter.add(getResources().getString(R.string.areaunitsqcm));
    UnitArrayadapter.add(getResources().getString(R.string.areaunitsqmm));
    UnitArrayadapter.add(getResources().getString(R.string.areaunitsqyard));    
}

private void fillSpinnerWithVolumeUnit(){
    UnitArrayadapter.clear();
    UnitArrayadapter.add(getResources().getString(R.string.volumeunitlitres));
    UnitArrayadapter.add(getResources().getString(R.string.volumeunitmillilitres));
    UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubicm));
    UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubiccm));
    UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubicmm));
    UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubicfeet));
}

public void onClick(View v){
    if(v == ButtonConvert){
        if(!inputValue.getText().toString().equals("")){
            double in = Double.parseDouble(inputValue.getText().toString());
            double result = currentStrategy.Convert(unitfrom, unitto, in);
            ResultView.setText(Double.toString(result));

            /** hid keyboard after press a button **/
            InputMethodManager inputManager = (InputMethodManager)
                    getSystemService(Context.INPUT_METHOD_SERVICE); 

            inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
                    InputMethodManager.HIDE_NOT_ALWAYS);
        }
        else {
            ResultView.setText("");
        }
    }
}

private void setStrategy(Strategy s){

    currentStrategy = s;
}        

///Here is the Menu
public boolean onCreateOptionsMenu(Menu menu){
    super.onCreateOptionsMenu(menu);
    MenuInflater perfect = getMenuInflater();
    perfect.inflate(R.menu.menus,  menu);

    return true;

}
public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()){

    case R.id.menuAbout:
        startActivity(new Intent("mini.worlld.econverter.ABOUT") );
        return true;
    }

    return false;
}

}


Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>