Fragment์์ ListView ๊ตฌํํ๊ธฐ 02
[2020-07-15]
์ ๋ฒ์๋ Fragment์์ ListView๊ฐ ๋ณด์ผ ์ ์๋๋ก ์ ๋ ฅํด ๋ณด์๋ค.
์ด๋ฒ์๋ ListView์ ์๋ ํญ๋ชฉ๋ค์ ํด๋ฆญํ๋ฉด
๋ค์ ํ๋ฉด์ผ๋ก ๋์ด๊ฐ ์ ์๊ฒ intent๋ฅผ ์ฌ์ฉํด ๋ณด๋ ค๊ณ ํ๋ค.
#02. intnet๋ฅผ ์ฌ์ฉํด ListView ํญ๋ชฉ ํด๋ฆญ ์ ํ๋ฉด ์ ํ
intent
์ดํ๋ฆฌ ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ์์์๋
Activity, Service, Broadcast Receiver, Content Provider๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ
์ด๋ฌํ ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ก์ , ๋ฐ์ดํฐ ๋ฑ์ ์ ๋ฌํ๋ ๋ฉ์์ง ๊ฐ์ฒด์ด๋ค.
intent๋ฅผ ์ฌ์ฉํด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ ์์๊ฐ ๋ฐ๋ก
์กํฐ๋นํฐ ๊ฐ์ ํ๋ฉด ์ ํ์ด๋ค.
- settings_advice.xml, settings_temperature.xml, settings_voice.xml, settings_widget.xml
<?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"
android:gravity="center"
android:orientation="vertical"
tools:context=".Settings_Advice"> <!— ๊ฐ ์ง์ ํ์ผ์ ๋ง๊ฒ ํด ์
๋ ฅ —>
<LinearLayout
android:id="@+id/layoutToolBar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/colorPrimary"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="15dp"
android:paddingEnd="15dp"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Help"
android:textColor="@color/colorWhite"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/layoutToolBar"
app:layout_constraintBottom_toBottomOf="parent"
android:gravity="center"
android:text="๋์๋ง"
android:textSize="25sp"
android:textStyle="bold"/>
</androidx.constraintlayout.widget.ConstraintLayout>
- Settings_Advice.java, Settings_Temperature.java, Settings_Voice.java, Settings_Widget.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class Settings_Advice extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//๊ฐ ํ์ผ์ ๋ง๊ฒ ContentView ์ค์
setContentView(R.layout.settings__advice);
}
}
์ผ๋จ ๊ฐ ๋ฆฌ์คํธ ํญ๋ชฉ๋ค์ ํ์ด์ง๋ฅผ ๋ง๋ค์ด ์ฃผ๋๋ก ํ๋ค.
- AnadoridManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.smartfan">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Settings_Advice"></activity>
<!— SubActivity ์
๋ ฅ —>
<activity android:name=".Settings_Voice" />
<activity android:name=".Settings_Temperature" />
<activity android:name=".Settings_Widget" />
<activity android:name=".MainActivity" />
<activity android:name=".IntroActivity">
<!-- ํน์ intent๋ฅผ ๋ฐ์์ง ๋ง์ง ์ ํ๋๋ก intnet-filter๋ฅผ ์
๋ ฅ -->
<intent-filter>
<!-- action_main : ์์ ์กํฐ๋นํฐ๋ฅผ ์ง์ ํ๋ ์ก์
-->
<action android:name="android.intent.action.MAIN" />
<!-- category_LAUNCHER : ์ ํ๋ฆฌ ์ผ์ด์
์์ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ์กํฐ๋นํฐ -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
intent-filter๋ฅผ ์ฌ์ฉํด ํน์ intent๋ฅผ ๋ฐ์์ง ๋ง์ง ๊ฒฐ์ ํ ์ ์๋๋ก ์ค์ ํ ํ,
intent๋ฅผ ํตํด ํ๋ฉด์ด ์ ํ๋ ์ ์๋๋ก SubActivity๋ค์ ์ ๋ ฅํด ์ฃผ๋๋ก ํ๋ค.
์ ๋ฎฌ๋ ์ดํฐ๋ฅผ ํตํด ํ์ธํด ๋ณด๋ฉด
๊ฐ ๋ฆฌ์คํธ์ ๊ฐ ํญ๋ชฉ๋ค์ ํด๋ฆญํ์ ๊ฒฝ์ฐ
๊ฐ ํ๋ฉด ํ์ด์ง๋ก ๋์ด๊ฐ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
๋๋์ด fragment์์ listView๋ฅผ ๋ง๋ค์ด ๊ฐ ํญ๋ชฉ์ ํ์ด์ง๊น์ง ๋ง๋ค์ด ๋ณด์๋ค.
์ด์ ์ ๋ฏธ๋ฆฌ ์ค์ ์ ๋ค ํด๋์๊ธฐ ๋๋ฌธ์ ํฐ ๊ณผ์ ์ ์์์ง๋ง ๊ทธ๋๋ ๋ฟ๋ฏํ๋ค.
๋๊ธ