提交 665c3317 创建 作者: Greyson Parrelli's avatar Greyson Parrelli

Added basic functionality.

上级 c1083bf2
......@@ -15,6 +15,7 @@
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".SumActivity"/>
</application>
</manifest>
\ No newline at end of file
package com.greysonparrelli.gitlabciandroid;
/**
* Adds numbers together.
*
* @author Greyson Parrelli (keybase.io/greyson)
*/
public class Adder {
private static final Adder INSTANCE = new Adder();
public static Adder getInstance() {
return INSTANCE;
}
public int add(int n1, int n2) {
return n1 + n2;
}
}
package com.greysonparrelli.gitlabciandroid;
/**
* Validates inputs.
*
* @author Greyson Parrelli (keybase.io/greyson)
*/
public class InputValidator {
private static final InputValidator INSTANCE = new InputValidator();
public static InputValidator getInstance() {
return INSTANCE;
}
public boolean isValidInt(String input) {
try {
Integer.parseInt(input);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
......@@ -2,6 +2,9 @@ package com.greysonparrelli.gitlabciandroid;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
......@@ -9,5 +12,26 @@ public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView num1View = (TextView) findViewById(R.id.num1);
final TextView num2View = (TextView) findViewById(R.id.num2);
findViewById(R.id.calc_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String n1Text = num1View.getText().toString();
String n2Text = num2View.getText().toString();
if (InputValidator.getInstance().isValidInt(n1Text) && InputValidator.getInstance().isValidInt(n2Text)) {
int n1 = Integer.parseInt(n1Text);
int n2 = Integer.parseInt(n2Text);
int sum = Adder.getInstance().add(n1, n2);
startActivity(SumActivity.buildIntent(MainActivity.this, sum));
} else {
Toast.makeText(MainActivity.this, "One of your inputs was invalid.", Toast.LENGTH_SHORT).show();
}
}
});
}
}
package com.greysonparrelli.gitlabciandroid;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
/**
* Displays the provided sum.
*
* @author Greyson Parrelli (keybase.io/greyson)
*/
public class SumActivity extends AppCompatActivity {
private static final String KEY_SUM = "sum";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sum);
if (getIntent() == null || !getIntent().hasExtra(KEY_SUM)) {
throw new IllegalStateException("Must be provided a sum to display.");
}
int sum = getIntent().getIntExtra(KEY_SUM, 0);
TextView sumView = (TextView) findViewById(R.id.sum);
sumView.setText(String.valueOf(sum));
}
public static Intent buildIntent(Context context, int sum) {
Intent intent = new Intent(context, SumActivity.class);
intent.putExtra(KEY_SUM, sum);
return intent;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/activity_main"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.greysonparrelli.gitlabciandroid.MainActivity">
<EditText
android:id="@+id/num1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Number 1"
android:inputType="number"
android:padding="10dp"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="+"
android:padding="10dp"
android:gravity="center"/>
<EditText
android:id="@+id/num2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
</RelativeLayout>
android:hint="Number 2"
android:inputType="number"
android:padding="10dp"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="="
android:padding="10dp"
android:gravity="center"/>
<Button
android:id="@+id/calc_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Calculate!"
android:padding="10dp"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sum"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="50sp"
android:gravity="center">
</TextView>
\ No newline at end of file
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论