瀏覽代碼

GUI Funktionen (Berechnung)

master
gitsvn 12 年之前
父節點
當前提交
15e369a8e9
共有 4 個檔案被更改,包括 82 行新增27 行删除
  1. 4
    1
      res/layout/rbs_main.xml
  2. 1
    0
      res/values-de/strings.xml
  3. 1
    0
      res/values/strings.xml
  4. 76
    26
      src/ch/spherIC/recurvebowsight/RBSMainActivity.java

+ 4
- 1
res/layout/rbs_main.xml 查看文件

android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
android:inputType="numberDecimal" android:inputType="numberDecimal"
android:text="42"
android:textSize="18sp" android:textSize="18sp"
app:txtFont="@string/TitilliumWeb_Regular" /> app:txtFont="@string/TitilliumWeb_Regular" />
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="40dp" android:layout_height="40dp"
android:ems="10" android:ems="10"
android:inputType="numberDecimal"
android:paddingBottom="9dp"
android:paddingTop="9dp"
android:textSize="18sp" android:textSize="18sp"
android:visibility="invisible" android:visibility="invisible"
app:txtFont="@string/TitilliumWeb_Regular" /> app:txtFont="@string/TitilliumWeb_Regular" />
</LinearLayout> </LinearLayout>
</TableRow> </TableRow>

+ 1
- 0
res/values-de/strings.xml 查看文件

<string name="caption_Ok">OK</string> <string name="caption_Ok">OK</string>
<string name="caption_Cancel">Abbrechen</string> <string name="caption_Cancel">Abbrechen</string>
<string name="caption_NoSelection">Keine Auswahl&#8230;</string> <string name="caption_NoSelection">Keine Auswahl&#8230;</string>
<string name="caption_FillAllMandatoryFields">Um die Berechnung durchzuführen, müssen alle Parameterfelder abgefüllt sein.</string>
</resources> </resources>

+ 1
- 0
res/values/strings.xml 查看文件

<string name="caption_Ok">OK</string> <string name="caption_Ok">OK</string>
<string name="caption_Cancel">Cancel</string> <string name="caption_Cancel">Cancel</string>
<string name="caption_NoSelection">No selection&#8230;</string> <string name="caption_NoSelection">No selection&#8230;</string>
<string name="caption_FillAllMandatoryFields">To start the calculation all parameter fields must be filled.</string>


</resources> </resources>

+ 76
- 26
src/ch/spherIC/recurvebowsight/RBSMainActivity.java 查看文件

import android.widget.ListView; import android.widget.ListView;
import android.widget.ScrollView; import android.widget.ScrollView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewFlipper; import android.widget.ViewFlipper;
import ch.spherIC.recurvebowsight.components.FontArrayAdapter; import ch.spherIC.recurvebowsight.components.FontArrayAdapter;
private TextView scaVTxtFld; private TextView scaVTxtFld;
private TextView scaHTxtFld; private TextView scaHTxtFld;
private TextView scVertScaleRngTxtFld; private TextView scVertScaleRngTxtFld;
private TextView scVertSkalaMiddleTxtFld;
private TextView scVertScaleMiddleTxtFld;
private TextView scEvSValue; private TextView scEvSValue;
private IArcherySetup selectedArcherySetup; private IArcherySetup selectedArcherySetup;
List<IRiser> risers = RiserDao.getInstance().loadAll(); List<IRiser> risers = RiserDao.getInstance().loadAll();
risers.add(0, new Riser(-999, getResources().getString(R.string.caption_NoSelection), "", null, null, null)); risers.add(0, new Riser(-999, getResources().getString(R.string.caption_NoSelection), "", null, null, null));
this.scRiserSpinner.setAdapter(new FontArrayAdapter<IRiser>(this, R.layout.rbs_spinner, risers, this.scRiserSpinner));
this.scRiserSpinner.setAdapter(new FontArrayAdapter<IRiser>(this, R.layout.rbs_spinner, risers,
this.scRiserSpinner));
List<ISight> sights = SightDao.getInstance().loadAll(); List<ISight> sights = SightDao.getInstance().loadAll();
sights.add(0, new Sight(-999, getResources().getString(R.string.caption_NoSelection), "", null, null, "", null, null));
this.scSightSpinner.setAdapter(new FontArrayAdapter<ISight>(this, R.layout.rbs_spinner, sights, this.scSightSpinner));
sights.add(0,
new Sight(-999, getResources().getString(R.string.caption_NoSelection), "", null, null, "", null, null));
this.scSightSpinner.setAdapter(new FontArrayAdapter<ISight>(this, R.layout.rbs_spinner, sights,
this.scSightSpinner));
addRiserAndSightSpinnerListeners(); addRiserAndSightSpinnerListeners();
this.scaVTxtFld = (TextView) findViewById(R.id.scaVTxtFld); this.scaVTxtFld = (TextView) findViewById(R.id.scaVTxtFld);
this.scaHTxtFld = (TextView) findViewById(R.id.scaHTxtFld); this.scaHTxtFld = (TextView) findViewById(R.id.scaHTxtFld);
this.scVertScaleRngTxtFld = (TextView) findViewById(R.id.scVertScaleRngTxtFld); this.scVertScaleRngTxtFld = (TextView) findViewById(R.id.scVertScaleRngTxtFld);
this.scVertSkalaMiddleTxtFld = (TextView) findViewById(R.id.scVertSkalaMiddleTxtFld);
this.scVertScaleMiddleTxtFld = (TextView) findViewById(R.id.scVertSkalaMiddleTxtFld);
this.scEvSValue = (TextView) findViewById(R.id.scEvSValue); this.scEvSValue = (TextView) findViewById(R.id.scEvSValue);
} }
this.scRiserSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { this.scRiserSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override @Override
public void onItemSelected(final AdapterView<?> parent, final View view, final int position, final long id) {
public void onItemSelected(final AdapterView<?> parent, final View view, final int position,
final long id) {
IRiser riser = RBSMainActivity.this.scRiserSpinner.getSelectedRiser(); IRiser riser = RBSMainActivity.this.scRiserSpinner.getSelectedRiser();
if (riser.getId() != -999) { if (riser.getId() != -999) {
RBSMainActivity.this.scVvisHTxtFld.setText(DF.format(riser.getVVisH())); RBSMainActivity.this.scVvisHTxtFld.setText(DF.format(riser.getVVisH()));
this.scSightSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { this.scSightSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override @Override
public void onItemSelected(final AdapterView<?> parent, final View view, final int position, final long id) {
public void onItemSelected(final AdapterView<?> parent, final View view, final int position,
final long id) {
ISight sight = RBSMainActivity.this.scSightSpinner.getSelectedSight(); ISight sight = RBSMainActivity.this.scSightSpinner.getSelectedSight();
if (sight.getId() != -999) { if (sight.getId() != -999) {
List<String> listHeVis = new ArrayList<String>(); List<String> listHeVis = new ArrayList<String>();
} }
RBSMainActivity.this.scHeVSTxtFld.setVisibility(View.INVISIBLE); RBSMainActivity.this.scHeVSTxtFld.setVisibility(View.INVISIBLE);
RBSMainActivity.this.scHeVSTxtFld.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSTxtFld
.getLayoutParams().width,
RBSMainActivity.this.scHeVSTxtFld
.getLayoutParams().height, 0f));
RBSMainActivity.this.scHeVSTxtFld.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSTxtFld.getLayoutParams().width,
RBSMainActivity.this.scHeVSTxtFld.getLayoutParams().height,
0f));
RBSMainActivity.this.scHeVSSpinner.setVisibility(View.VISIBLE); RBSMainActivity.this.scHeVSSpinner.setVisibility(View.VISIBLE);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSSpinner.getLayoutParams().width, LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSSpinner.getLayoutParams().width,
1f); 1f);
params.gravity = Gravity.FILL_VERTICAL; params.gravity = Gravity.FILL_VERTICAL;
RBSMainActivity.this.scHeVSSpinner.setLayoutParams(params); RBSMainActivity.this.scHeVSSpinner.setLayoutParams(params);
RBSMainActivity.this.scHeVSSpinner.setAdapter(new FontArrayAdapter<String>(RBSMainActivity.this, R.layout.rbs_spinner,
listHeVis, RBSMainActivity.this.scHeVSSpinner));
RBSMainActivity.this.scHeVSSpinner.setAdapter(new FontArrayAdapter<String>(RBSMainActivity.this,
R.layout.rbs_spinner,
listHeVis,
RBSMainActivity.this.scHeVSSpinner));
RBSMainActivity.this.scHeVSSpinner.setSelection(0); RBSMainActivity.this.scHeVSSpinner.setSelection(0);
if (RBSMainActivity.this.selectedArcherySetup != null if (RBSMainActivity.this.selectedArcherySetup != null
&& RBSMainActivity.this.selectedArcherySetup.getSight().getId() == sight.getId()) { && RBSMainActivity.this.selectedArcherySetup.getSight().getId() == sight.getId()) {
RBSMainActivity.this.scHeVSSpinner.setSelectionByVal(DF.format(RBSMainActivity.this.selectedArcherySetup
.getSightHorSetting()));
RBSMainActivity.this.scHeVSSpinner.setSelectionByVal(DF.format(RBSMainActivity.this.selectedArcherySetup.getSightHorSetting()));
} }
RBSMainActivity.this.scaVTxtFld.setText(DF.format(sight.getAV())); RBSMainActivity.this.scaVTxtFld.setText(DF.format(sight.getAV()));
RBSMainActivity.this.scaHTxtFld.setText(DF.format(sight.getAH())); RBSMainActivity.this.scaHTxtFld.setText(DF.format(sight.getAH()));
+ DF.format(sight.getVertSkalaRangeMax())); + DF.format(sight.getVertSkalaRangeMax()));
} else { } else {
RBSMainActivity.this.scHeVSSpinner.setVisibility(View.INVISIBLE); RBSMainActivity.this.scHeVSSpinner.setVisibility(View.INVISIBLE);
RBSMainActivity.this.scHeVSSpinner.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSSpinner
.getLayoutParams().width,
RBSMainActivity.this.scHeVSSpinner
.getLayoutParams().height, 0f));
RBSMainActivity.this.scHeVSSpinner.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSSpinner.getLayoutParams().width,
RBSMainActivity.this.scHeVSSpinner.getLayoutParams().height,
0f));
RBSMainActivity.this.scHeVSTxtFld.setVisibility(View.VISIBLE); RBSMainActivity.this.scHeVSTxtFld.setVisibility(View.VISIBLE);
RBSMainActivity.this.scHeVSTxtFld.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSTxtFld
.getLayoutParams().width,
RBSMainActivity.this.scHeVSTxtFld
.getLayoutParams().height, 1f));
RBSMainActivity.this.scHeVSSpinner.setAdapter(new FontArrayAdapter<String>(RBSMainActivity.this, R.layout.rbs_spinner,
RBSMainActivity.this.scHeVSTxtFld.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSTxtFld.getLayoutParams().width,
RBSMainActivity.this.scHeVSTxtFld.getLayoutParams().height,
1f));
RBSMainActivity.this.scHeVSSpinner.setAdapter(new FontArrayAdapter<String>(RBSMainActivity.this,
R.layout.rbs_spinner,
new ArrayList<String>(), new ArrayList<String>(),
RBSMainActivity.this.scHeVSSpinner)); RBSMainActivity.this.scHeVSSpinner));
RBSMainActivity.this.scaVTxtFld.setText(""); RBSMainActivity.this.scaVTxtFld.setText("");
showDialog(DLG_CHOOSE_ARCHERYSETUP); showDialog(DLG_CHOOSE_ARCHERYSETUP);
return true; return true;
case R.id.doCalculation:
calculate();
return true;
case R.id.moreItems: case R.id.moreItems:
this.showInfoMenu = true; this.showInfoMenu = true;
closeOptionsMenu(); closeOptionsMenu();
this.calcAccuracyCboBox.setSelectionByVal(archerySetup.getCalcPrecision().toString()); this.calcAccuracyCboBox.setSelectionByVal(archerySetup.getCalcPrecision().toString());
this.scRiserSpinner.setSelectedRiser(archerySetup.getRiser()); this.scRiserSpinner.setSelectedRiser(archerySetup.getRiser());
this.scSightSpinner.setSelectedSight(archerySetup.getSight()); this.scSightSpinner.setSelectedSight(archerySetup.getSight());
this.scVertSkalaMiddleTxtFld.setText(archerySetup.getSightVertSkalaMiddle().toString());
this.scVertScaleMiddleTxtFld.setText(archerySetup.getSightVertSkalaMiddle().toString());
} else { } else {
this.arrowDiameterTxtFld.setText(""); this.arrowDiameterTxtFld.setText("");
this.arrowDiameterTxtFld.setText(""); this.arrowDiameterTxtFld.setText("");
this.calcAccuracyCboBox.setSelectionByVal(""); this.calcAccuracyCboBox.setSelectionByVal("");
this.scRiserSpinner.setSelection(0); this.scRiserSpinner.setSelection(0);
this.scSightSpinner.setSelection(0); this.scSightSpinner.setSelection(0);
this.scVertSkalaMiddleTxtFld.setText("");
this.scVertScaleMiddleTxtFld.setText("");
} }
} }
} }
private boolean allParamFieldsValid() {
return !this.arrowDiameterTxtFld.getText().toString().isEmpty()
&& !this.arrowCwTxtFld.getText().toString().isEmpty()
&& !this.arrowWeightTxtFld.getText().toString().isEmpty()
&& !this.bowPulloutTxtFld.getText().toString().isEmpty()
&& !this.arrowV0TxtFld.getText().toString().isEmpty()
&& !this.airTemperatureTxtFld.getText().toString().isEmpty()
&& !this.airRelativeHumidityTxtFld.getText().toString().isEmpty()
&& !this.shootingDistanzTxtFld.getText().toString().isEmpty()
&& !this.arrowNockHeightTxtFld.getText().toString().isEmpty()
&& !this.targetCenterHeightTxtFld.getText().toString().isEmpty()
&& this.calcTimeIntervalCboBox.getSelectedItem() != null
&& this.calcAccuracyCboBox.getSelectedItem() != null
&& !this.scVvisHTxtFld.getText().toString().isEmpty()
&& !this.scVvisVTxtFld.getText().toString().isEmpty()
&& !this.scaHTxtFld.getText().toString().isEmpty()
&& !this.scaVTxtFld.getText().toString().isEmpty()
&& !this.scVertScaleRngTxtFld.getText().toString().isEmpty()
&& !this.scVertScaleMiddleTxtFld.getText().toString().isEmpty()
&& ((this.scHeVSSpinner.getVisibility() == View.VISIBLE && this.scHeVSSpinner.getSelectedItem() != null)
|| (this.scHeVSTxtFld.getVisibility() == View.VISIBLE && !this.scHeVSTxtFld.getText().toString().isEmpty()))
&& !this.scVertScaleMiddleTxtFld.getText().toString().isEmpty();
}
/**
* Startet die Berechnung wenn alle notwendigen Felder gefüllt sind.
*/
private void calculate() {
if (allParamFieldsValid()) {
// CALCULATION!!
} else {
Toast toast = Toast.makeText(this, getResources().getString(R.string.caption_FillAllMandatoryFields), Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
} }

Loading…
取消
儲存