앱이름 바꾸기와 앱이미지(아이콘) 바꾸는 방법임.
Manifest로 들어가서
android:icon="@+id/앱 이미지지정"
<Activity 아래에 있는
android:label="앱 이름 지정"
실행시키면 변경된 것을 확인 할 수 있다.
앱이름 바꾸기와 앱이미지(아이콘) 바꾸는 방법임.
Manifest로 들어가서
android:icon="@+id/앱 이미지지정"
<Activity 아래에 있는
android:label="앱 이름 지정"
실행시키면 변경된 것을 확인 할 수 있다.
실전에서 많이 쓰이는 참조형 리스트뷰 에대한 사용 방법임.
이전 포스팅과 코드가 많이 겹치므로 이어서 사용함.
(※ 이전포스팅 주소 : https://asterisco.tistory.com/45)
00. 자바위에 마우스오른쪽버튼 클릭 - New - JavaClass 클릭.
01. 이름을 부여하고 OK버튼 클릭 (FruitsItem이라고 지음)
02. 다음과 같이 입력하고 마우스 오른쪽 버튼클릭 - Generate 클릭
public class FruitsItem{
String names;
String ages;
}
03. Getter and Setter 로 불러들여온다.
04. 두개다 선택하고 클릭
05. 다시한번 바탕화면에서 마우스 오른쪽버튼클릭 - Generate 클릭
06. 이번에는 Constructor를 클릭
07. 이번에도 두개다 선택한후 OK버튼을 클릭한다.
08. 다음과 같이 나타나는데 디폴트생성자만 하나 더 추가해주자.
09. 메인Script로 와서 지정되었던 값들을 밖으로 빼고 ArrayList를 사용하여 이 값들을 참조하자.
10. 중간에 addItem 을 하나 만들어주고 마지막부분을 효율을 높여주기위해 다음과 같이 수정한다.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
FruitsItemView view = null;
if (convertView == null){
view = new FruitsItemView(getApplicationContext());
} else {
view = (FruitsItemView) convertView;
}
FruitsItem curItem = items.get(position);
view.setName(curItem.getName());
view.setAge(curItem.getAge());
return view;
}
11. 실행시켜본다.
12. 정상적으로 작동됨을 확인 할 수 있다.
참고: 메인자바스크립트 전체코드임.
package com.example.joey.mylistview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView listView;
FruitsAdapter fruitsAdapter;
String[] names = {"사과", "바나나", "딸기", "메론", "오렌지"};
String[] ages = {"21", "23", "25", "68", "10"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
fruitsAdapter = new FruitsAdapter();
fruitsAdapter.addItem(new FruitsItem(names[0], ages[0]));
fruitsAdapter.addItem(new FruitsItem(names[1], ages[1]));
fruitsAdapter.addItem(new FruitsItem(names[2], ages[2]));
fruitsAdapter.addItem(new FruitsItem(names[3], ages[3]));
fruitsAdapter.addItem(new FruitsItem(names[4], ages[4]));
listView.setAdapter(fruitsAdapter);
}
class FruitsAdapter extends BaseAdapter {
ArrayList<FruitsItem> items = new ArrayList<FruitsItem>();
@Override
public int getCount() {
return items.size();
}
public void addItem(FruitsItem item){
items.add(item);
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
FruitsItemView view = null;
if (convertView == null){
view = new FruitsItemView(getApplicationContext());
} else {
view = (FruitsItemView) convertView;
}
FruitsItem curItem = items.get(position);
view.setName(curItem.getName());
view.setAge(curItem.getAge());
return view;
}
}
}
텍스트 대신에 레이아웃형태를 리스트뷰 시키는 방법임.
이전 리스트뷰 코드와 많이 겹쳤기때문에 이어서 사용했슴.
(※ 이전 리스트뷰 주소 참고 - https://asterisco.tistory.com/44)
00. res밑에 layout 마우스오른쪽버튼 클릭 - New - resource Files 클릭
01. 이름을 지어주고 OK버튼 클릭. (fruits_item.xml이라고 지어줬다.)
02. 코드를 입력하고 아래쪽에 디자인 텝을 눌러 디자인을 확인해보자.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
<TextView
android:id="@+id/nameTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30dp"
android:textColor="#ff000000"/>
<TextView
android:id="@+id/ageTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="25dp"
android:textColor="#ff0000ff"/>
</LinearLayout>
</LinearLayout>
03. 저런식으로 들어가게된다. 실제 이미지 옆에 마우스를 가져다놓으면 리스트뷰의 위치를 확인 할 수 있다.
04. 메인자바Script위에서 마우스오른쪽버튼클릭 - New - JavaClass 클릭
05. 방금만든 xml파일과 연결시켜주기위해 이름을 비슷하게 지어주고 OK버튼 클릭.
06. class FruitsItemView extends LinearLayout {}라고 치고 Alt+Enter 를 쳐서 기본 constructure를 불러오자.
07. 연결시켜주기 위해서 fruits_item.xml의 텍스트뷰에 아이디를 입력하자.
08. FruitsItemView Script에 다음과 같이 코드를 입력하자.
package com.example.joey.mylistview;
import ...
class FruitsItemView extends LinearLayout {
TextView nameTextView;
TextView ageTextView;
public FruitsItemView(Context context) {
super(context);
init(context);
}
public FruitsItemView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.fruits_item, this, true);
nameTextView = (TextView) findViewById(R.id.nameTextView);
ageTextView = (TextView) findViewById(R.id.ageTextView);
}
public void setName(String name){
nameTextView.setText(name);
}
public void setAge(String age){
ageTextView.setText(age);
}
}
09. 메인Script로 와서 로딩해주자.
package com.example.joey.mylistview;
import ...
public class MainActivity extends AppCompatActivity {
ListView listView;
FruitsAdapter fruitsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
fruitsAdapter = new FruitsAdapter();
listView.setAdapter(fruitsAdapter);
}
class FruitsAdapter extends BaseAdapter {
String[] names = {"사과", "바나나", "딸기", "메론", "오렌지"};
String[] ages = {"21", "23", "25", "68", "10"};
@Override
public int getCount() {
return names.length;
}
@Override
public Object getItem(int position) {
return names[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
FruitsItemView view = new FruitsItemView(getApplicationContext());
view.setName(names[position]);
view.setAge(ages[position]);
return view;
}
}
}
10. 실행시켜보자.
11. 정상적으로 작동되었음을 확인 할 수 있다.
간단하게 텍스트를 리스트뷰 로 불러오는 방법임.
리스트뷰는 어댑터에서 관리하기때문에 데이터를 바로 리스트뷰에 연결 하려하지말고 어댑터로 연결을 먼저 하는게 중요.! !
00. 리스트뷰를 만든다.
01. 다음과같이 코드를 입력한다. (※자세한 내용은 주석처리.)
package com.example.joey.mylistview;
import ...
public class MainActivity extends AppCompatActivity {
ListView listView;
FruitsAdapter fruitsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
fruitsAdapter = new FruitsAdapter();
listView.setAdapter(fruitsAdapter);
}
// Adapter 에서 listView나 배열등을 관리하기 때문에 Adapter Class 를 만들어줘야함.↓
class FruitsAdapter extends BaseAdapter {
String[] names = {"사과", "바나나", "딸기", "메론", "오렌지"}; //일단은 간단하게 텍스트를 리스트로 나타내보기위함.
@Override
public int getCount() { //리스트가 adapter에게 갯수를 알려줌.
return names.length;
}
@Override
public Object getItem(int position) { //각각의 값을 알려줌.
return names[position];
}
@Override
public long getItemId(int position) { //아이디 값을 인덱스로 일단 줘보자.
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) { //어댑터는 뷰도 다루기때문
TextView view = new TextView(getApplicationContext()); // 뷰 객체 생성
view.setText(names[position]); // 글자를 넣어줄 수 있음(여기는 아이템에 맞는 포지션으로 넣어줌.)
view.setTextSize(50.0f); // 텍스트 크기값( f;픽셀값으로) 지정.
view.setTextColor(Color.BLUE); // 텍스트 색( 블루) 지정.
return view; // 리턴해주는 것이 각각의 아이템으로 보여짐.
}
}
}
02. 실행시켜본다.
03. 텍스트가 리스트형식으로 보여지는 것을 확인 할 수 있다.
시크바(SeekBar) 에 대한 사용방법임.
00. SeekBar위젯을 클릭 후 Properties의 Max 값을 지정해준다. 보통은 100으로 지정해준다.
01. 텍스트뷰를 만들어준다.
02. 시크바의 상태에따른 값을 텍스트뷰에 지정하여 보여지게 만들어보자.
package com.example.joey.myseekbar;
import ...
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textView.setText("설정된 값 : "+ progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
textView = (TextView) findViewById(R.id.textView);
}
}
03. 실행시켜보자.
04. 시크바를 움직여보자.
05. 텍스트뷰의 값이 변하는 것을 볼 수 있다.
06. 구동이 잘 되는 것을 확인 할 수 있다.