2017.06.09
3rd Class
* 상수로 선언 해주는 법 : final
* 안드로이드 스튜디오 예제 : https://codelabs.developers.google.com/
* 코드로 레이아웃 생성시 intent를 조정해줘야 한다.
- app-manifests 가서 해당 클래스 명 뒤 액티비티에 intent-filter를 옮겨줘야 한다.
<은비 >
package com.oneplus.admin9.class0609;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button btnRemove;
Button btnLeft;
Button btnRight;
ImageView img;
int cnt = 0;
int[] imgs = {R.drawable.cat, R.drawable.cat2, R.drawable.cat3, R.drawable.cat4, R.drawable.cat5}; //이미지가 많을 경우가 있어서 배열에 넣어 두는게 좋다. R파일 안에 16진수로 들어 있어서 int로 선언한거다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnRemove = (Button) findViewById(R.id.btnRemove);
btnLeft = (Button) findViewById(R.id.btnLeft);
btnRight = (Button) findViewById(R.id.btnRight);
img = (ImageView) findViewById(R.id.img);
btnRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((Button) v).getText().equals("REMOVE")) {
img.setVisibility(View.INVISIBLE);
((Button) v).setText("SHOW");
} else {
img.setVisibility(View.VISIBLE);
((Button) v).setText("REMOVE");
}
}
});
btnLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (cnt == imgs.length - 1) {
Toast.makeText(getApplicationContext(), "사진없음", Toast.LENGTH_SHORT).show(); //getApplicationContext() 현재 화면 정보를 넘기는 메소드
cnt = 4;
} else {
img.setImageResource(imgs[++cnt]);
}
}
});
btnRight.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
if (cnt == -1) {
Toast.makeText(getApplicationContext(), "사진없음", Toast.LENGTH_SHORT).show(); //getApplicationContext() 현재 화면 정보를 넘기는 메소드
cnt = 0;
} else {
img.setImageResource(imgs[--cnt]);
}
}
});
}
// private class ChangeImage {
// public void invoke() {
// if (cnt == 0) {
// img.setImageResource(R.drawable.cat);
// } else if (cnt == 1) {
// img.setImageResource(R.drawable.cat2);
// } else if (cnt == 2) {
// img.setImageResource(R.drawable.cat3);
// } else if (cnt == 3) {
// img.setImageResource(R.drawable.cat4);
// } else if (cnt == 4) {
// img.setImageResource(R.drawable.cat5);
// } else if (cnt > 4) {
// cnt = 0;
// img.setImageResource(R.drawable.cat);
// } else if (cnt < 0) {
// cnt = 4;
// img.setImageResource(R.drawable.cat5);
// }
// }
// }
}
<준영>
package com.oneplus.admin9.class0608_park;
import android.content.res.Resources;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
public class JavaLayoutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_java_layout);
//RelativeLayout myLayout = getGenerateLayout(); //메소드로 빼주기 ctrl + alt + m
setContentView(getGenerateLayout());
//이대로 실행하면 전에 것이 run된다. 그래서 app-manifests 가서 intent-filter를 옮겨줘야 한다.
findViewById(R.id.myButtonId).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText et = (EditText) findViewById(R.id.myEditTextId);
et.setText("");
}
});
}
@NonNull
private RelativeLayout getGenerateLayout() {
Button myButton = new Button(this);
myButton.setText("Press Me");
myButton.setBackgroundColor(Color.YELLOW);
myButton.setTransformationMethod(null);
RelativeLayout myLayout = new RelativeLayout(this);
myLayout.setBackgroundColor(Color.WHITE);
EditText myEditText = new EditText(this);
myButton.setId(R.id.myButtonId);
myEditText.setId(R.id.myEditTextId);
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams textParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
textParams.addRule(RelativeLayout.ABOVE, myButton.getId());
textParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
textParams.setMargins(0, 0, 0, 20);
Resources r = getResources();
int px = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 300, r.getDisplayMetrics());
myEditText.setWidth(px);
buttonParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
buttonParams.addRule(RelativeLayout.CENTER_VERTICAL);
myLayout.addView(myButton, buttonParams);
myLayout.addView(myEditText, textParams);
return myLayout;
}
}
'노트필기' 카테고리의 다른 글
[Do it 안드로이드] Parcelable 예제 (0) | 2017.06.18 |
---|---|
[Android] 5th Class (0) | 2017.06.13 |
[Android] 4th Class (0) | 2017.06.12 |
[Android] 2nd Class (0) | 2017.06.08 |
[Android] 1st.Class (0) | 2017.06.07 |