<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
안드로이드의 4대 컴포넌트
1.Activity -화면을 제어해주는 컨트롤러 역할
2.Service
3.BroadcastReceivier
4.ContentProvider
console로 확인해보는 activity의 라이프사이클
레이아웃을 만들기 위해 소스를 수정해보겠다. 아래의 코드가 기존코드인데 이것을
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
LinearLayout으로 변경해보겠다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</LinearLayout>
입력한 문자를 아래 textview에 출력해보기
package com.example.step01example;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sendBtn = findViewById(R.id.sendBtn);
sendBtn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
//1.EditText에서 문자열 읽어오기
EditText editText = findViewById(R.id.editTextText);
String msg=editText.getText().toString();
//2.TextView에 출력하기
TextView textView = findViewById(R.id.textView);
textView.setText(msg);
}
}
ListView 만들어보기
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"/>
</LinearLayout>
이렇게 하면 ListView를 사용할 준비는 됐다.
이런식으로 출력할 데이터들을 직접적으로 넣을 순 없다. 중간에 필요한 배열어뎁터가 필요하다.
package com.example.step02listview;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ListView의 참조값
ListView listView = findViewById(R.id.listView);
//ListView에 출력할 sampleData
List<String> names=new ArrayList<>();
names.add("김구라");
names.add("해골");
names.add("원숭이");
for(int i = 0; i < 100; i++){
names.add("아무개" + i);
}
//ListView에 연결할 어뎁터 객체
//new ArrayAdapter<>(Context, layout resource, 모델)
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_1,
names
);
//어뎁터를 ListView에 연결하기
listView.setAdapter(adapter);
}
}
setOnClickListener로는 정확히 어디를 클릭했는지는 알수 없다.
이럴 때 필요한 것은 처음 사용해보는 메서드가 필요하다
package com.example.step02listview;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
List<String> = names;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//ListView의 참조값
ListView listView = findViewById(R.id.listView);
//ListView에 출력할 sampleData
List<String> names=new ArrayList<>();
names.add("김구라");
names.add("해골");
names.add("원숭이");
for(int i = 0; i < 100; i++){
names.add("아무개" + i);
}
//ListView에 연결할 어뎁터 객체
//new ArrayAdapter<>(Context, layout resource, 모델)
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_1,
names
);
//어뎁터를 ListView에 연결하기
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//i는 클릭한 item의 인덱스 값
Log.d("MainActivity", "i: +" + i);
//click한 item에 출력된 이름
String clickedName=names.get(i);
//토스트(가벼운메세지)출력
Toast.makeText(this, clickedName, Toast.LENGTH_SHORT).show();
}
}
'수업내용' 카테고리의 다른 글
20230720 Android CustomAdapter (0) | 2023.07.20 |
---|---|
20230720 CSS3 flex2 (0) | 2023.07.20 |
20230719 flex (0) | 2023.07.19 |
20230718 Poligon 응용해보기 (0) | 2023.07.18 |
20230718 AndroidStudio설치/실행 (0) | 2023.07.18 |
댓글