스크롤뷰(ScrollView)
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:id="@+id/scrollView01"
tools:context="org.android.soldesk.scrollview_01.ScrollView_01Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout01"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textView01"
android:background="#ffff0000"
android:height="1000px"
android:text="one"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textView02"
android:background="#ff00ff00"
android:height="1800px"
android:text="two"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textView03"
android:background="#ff0000ff"
android:height="1500px"
android:text="three"
/>
</LinearLayout>
</ScrollView>
<화면이 상하로 움직입니다.>
HorizontalScrollView
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView 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:id="@+id/horizontalScorllView01"
tools:context="org.android.soldesk.horizontalscrollview_01.HorizontalScrollView_01Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/linearLayout01"
>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textView01"
android:background="#ffff0000"
android:text="one"
android:width="350px"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textView02"
android:background="#ffffff00"
android:text="two"
android:width="850px"
/>
</LinearLayout>
</HorizontalScrollView>
<화면이 좌우로 움직입니다.>
스피너(spinner)
좌측에 메뉴에서 app > res > values우클릭 > new > xml > Values XML File 클릭
이름을 array로 하고 Finish를 클릭하세요.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Vernus</item>
<item>Earth</item>
<item>Mars</item>
<item>Moon</item>
</string-array>
</resources>
array 내용을 위와 같이 적습니다.
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.spinner_01.Spinner_01Activity">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner01"
android:entries="@array/planets_array"
>
</Spinner>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>수성</item>
<item>금성</item>
<item>지구</item>
<item>화성</item>
<item>목성</item>
<item>토성</item>
</string-array>
</resources>
arrays.xml로 저장
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.spinner_02.Spinner_02Activity">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff00ff00"
android:id="@+id/spinner01"
>
</Spinner>
</LinearLayout>
package org.android.soldesk.spinner_02;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Spinner_02Activity extends AppCompatActivity {
Spinner sppin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_02);
sppin = (Spinner) findViewById(R.id.spinner01);
ArrayAdapter adapter = ArrayAdapter.createFromResource(getApplicationContext(),
R.array.planets_array,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sppin.setAdapter(adapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.spinner_03.Spinner_03Activity">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#cccc66"
android:id="@+id/spinner01"/>
</LinearLayout>
package org.android.soldesk.spinner_03;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Spinner_03Activity extends AppCompatActivity {
Spinner spin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_03);
String[] data = {"목력","개나리","산수유","매화","유채꽃","벗꽃"};
spin = (Spinner) findViewById(R.id.spinner01);
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),
android.R.layout.simple_spinner_item, data);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
}
}
이벤트 넣기
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.spinner_04.Spinner_04Activity">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner01"
android:background="#ff00ff33"
>
</Spinner>
</LinearLayout>
package org.android.soldesk.spinner_04;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Spinner_04Activity extends AppCompatActivity {
Spinner spin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_04);
final String[] data = {"사과","바나나","오렌지","배","복숭아","딸기"};
spin = (Spinner) findViewById(R.id.spinner01);
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),
android.R.layout.simple_spinner_item,data);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
// Event Handler
spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.i("spin","id : " + id + " / " + view.getId() + " / " + data[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
외부 클래스로 만들기
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.spinner_044.Spinner_044Activity">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner01"
android:background="#ff00ff33"
>
</Spinner>
</LinearLayout>
package org.android.soldesk.spinner_044;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Spinner_044Activity extends AppCompatActivity {
Spinner spin;
final String[] data = {"사과","바나나","오렌지","배","복숭아","딸기"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_044);
spin = (Spinner) findViewById(R.id.spinner01);
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),
android.R.layout.simple_spinner_item,data);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
spin.setOnItemSelectedListener(new handler(this));
}
}
package org.android.soldesk.spinner_044;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
/**
* Created by soldesk on 2017-03-21.
*/
class handler implements AdapterView.OnItemSelectedListener {
Spinner_044Activity aaa = null;
public handler(Spinner_044Activity kkk) {
aaa=kkk;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.i("spin","id : " + id + " / " + view.getId() + " / " + aaa.data[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
android:padding="10dp"
tools:context="org.android.soldesk.spinner_05.Spinner_05Activity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/planet_prompt"
/>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner01"
android:background="#ff00ff00"
android:prompt="@string/planet_prompt"
/>
</LinearLayout>
package org.android.soldesk.spinner_05;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class Spinner_05Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner_05);
Spinner spinner = (Spinner) findViewById(R.id.spinner01);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.planets_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(parent.getContext(),"선택된 행성은 " + parent.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
values > strings.xml을 열어서 아래와 같이 코드를 수정
<resources>
<string name="app_name">Spinner_05</string>
<string name="planet_prompt"> 행성을 선택 하시오 </string>
<string-array name="planets_array">
<item>수성</item>
<item>금성</item>
<item>지구</item>
<item>화성</item>
<item>목성</item>
<item>토성</item>
<item>천왕성</item>
<item>해왕성</item>
<item>명왕성</item>
</string-array>
</resources>
이미지 주소 삽입하기
InternetImage
app > manifests > AndroidManifest.xml 더블클릭
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.android.soldesk.internetimage_011">
<uses-permission android:name="android.permission.INTERNET"/>
<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=".InternetImage_011Activity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
위 내용을 입력 후 저장
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.internetimage_011.InternetImage_011Activity">
<ImageView
android:id="@+id/imgDaum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
<ImageView
android:id="@+id/imgDauma"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
</LinearLayout>
package org.android.soldesk.internetimage_011;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import java.io.InputStream;
import java.net.URL;
public class InternetImage_011Activity extends AppCompatActivity {
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_internet_image_011);
Thread tt = new Thread(new Runnable() {
@Override
public void run() {
try {
final ImageView imgDaum = (ImageView) findViewById(R.id.imgDaum);
URL url = new URL("http://img.naver.net/static/www/u/2013/0731/nmms_224940510.gif");
InputStream is = url.openStream();
final Bitmap bm = BitmapFactory.decodeStream(is);
handler.post(new Runnable() {
@Override
public void run() {
imgDaum.setImageBitmap(bm);
}
});
}catch (Exception e)
{
e.printStackTrace();
}
try {
final ImageView imgDauma = (ImageView) findViewById(R.id.imgDauma);
URL url = new URL("http://icon.daumcdn.net/w/icon/1612/30/101624314.png");
InputStream is = url.openStream();
final Bitmap bmm = BitmapFactory.decodeStream(is);
handler.post(new Runnable() {
@Override
public void run() {
imgDauma.setImageBitmap(bmm);
}
});
}catch (Exception e)
{
e.printStackTrace();
}
}
});
tt.start();
}
리스트뷰(ListView)
values > arrays.xml 생성
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="num">
<item>AA</item>
<item>BB</item>
<item>CC</item>
<item>DD</item>
<item>EE</item>
<item>FF</item>
<item>GG</item>
<item>HH</item>
<item>II</item>
<item>JJ</item>
<item>KK</item>
<item>LL</item>
<item>MM</item>
<item>NN</item>
<item>OO</item>
<item>PP</item>
<item>QQ</item>
<item>RR</item>
<item>SS</item>
<item>TT</item>
<item>UU</item>
<item>VV</item>
<item>WW</item>
<item>XX</item>
<item>YY</item>
<item>ZZ</item>
</string-array>
</resources>
위 내용 입력 후 저장
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.listview_01.ListView_01Activity">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listVies01"
android:background="#88ff0000"
android:entries="@array/num"
/>
</LinearLayout>
package org.android.soldesk.listview_01;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class ListView_01Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_01);
}
}
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.listview_02.ListView_02Activity">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listVies01"
android:background="#8800ff00"
/>
</LinearLayout>
package org.android.soldesk.listview_02;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListView_02Activity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_02);
listView = (ListView) findViewById(R.id.listVies01);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.num,
android.R.layout.simple_list_item_1);
listView.setAdapter(adapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.listview_03.ListView_03Activity">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#bbbbbb"
android:id="@+id/listView01"
/>
</LinearLayout>
package org.android.soldesk.listview_03;
import android.support.v7.app.AppCompatActivity;
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.TextView;
public class ListView_03Activity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_03);
String[] data = {"백합","수선화","라일락","산수유","개나리","목련"};
listView = (ListView) findViewById(R.id.listView01);
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1,data);
listView.setAdapter(adapter);
// 이벤트 처리
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView = (TextView) view;
Log.i("MyTag",textView.getText().toString());
}
});
}
}
app > res > layout > list_row.xml 생성
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="196dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtTitle"
android:text="Large Text"
android:textColor="#00dd33"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtContent"
android:textColor="@color/colorAccent"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout>
<ImageView
android:layout_width="130dp"
android:layout_height="110dp"
android:id="@+id/imgIcon"
android:src="@mipmap/ic_launcher"
/>
</LinearLayout>
위 내용을 저장
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.mylistview_01.MyListView_01Activity">
<ListView
android:id="@+id/listView01"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
package org.android.soldesk.mylistview_01;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;
public class MyListView_01Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_list_view_01);
ArrayList<MyCustomDTO> list = new ArrayList<>();
list.add(new MyCustomDTO("호랑이","무서운 호랑이 입니다.",R.drawable.a));
list.add(new MyCustomDTO("사자","무서운 사자 입니다.",R.drawable.b));
list.add(new MyCustomDTO("뱀","무서운 뱀 입니다.",R.drawable.c));
list.add(new MyCustomDTO("코끼리","무서운 코끼리 입니다.",R.drawable.d));
list.add(new MyCustomDTO("기린","무서운 기린 입니다.",R.drawable.e));
ListView listView = (ListView) findViewById(R.id.listView01);
MyCustomAdapter adapter = new MyCustomAdapter(getApplicationContext(),
R.layout.list_row,list);
listView.setAdapter(adapter);
}
}
package org.android.soldesk.mylistview_01;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by soldesk on 2017-03-21.
*/
class MyCustomAdapter extends BaseAdapter {
Context ctx;
int layout;
ArrayList<MyCustomDTO> list;
LayoutInflater inf;
public MyCustomAdapter(Context ctx, int layout, ArrayList<MyCustomDTO> list) {
this.ctx = ctx;
this.layout = layout;
this.list = list;
inf = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
{
convertView = inf.inflate(layout,null);
}
TextView txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);
TextView txtContent = (TextView) convertView.findViewById(R.id.txtContent);
ImageView imgIcon = (ImageView) convertView.findViewById(R.id.imgIcon);
MyCustomDTO dto = list.get(position);
txtTitle.setText(dto.getTitle());
txtContent.setText(dto.getContent());
imgIcon.setImageResource(dto.getImgIcon());
return convertView;
}
}
package org.android.soldesk.mylistview_01;
/**
* Created by soldesk on 2017-03-21.
*/
class MyCustomDTO {
String title;
String content;
int imgIcon;
public MyCustomDTO(String title, String content, int imgIcon) {
this.title = title;
this.content = content;
this.imgIcon = imgIcon;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getImgIcon() {
return imgIcon;
}
public void setImgIcon(int imgIcon) {
this.imgIcon = imgIcon;
}
}
아래는 이미지를 왼쪽으로 배치하고 이메일을 추가하는 방법입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imgIcon"
android:layout_width="130dp"
android:layout_height="110dp"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="196dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="right"
android:orientation="vertical">
<TextView
android:id="@+id/txtTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#00dd33" />
<TextView
android:id="@+id/txtContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/colorAccent" />
<TextView
android:id="@+id/txtEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/colorAccent" />
</LinearLayout>
</LinearLayout>
list_row.xml 내용
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
tools:context="org.android.soldesk.mylistview_011.MyListView_011Activity">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView01"
>
</ListView>
</LinearLayout>
package org.android.soldesk.mylistview_011;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;
public class MyListView_011Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_list_view_011);
ArrayList<MyCustomDTO> list = new ArrayList<>();
list.add(new MyCustomDTO("호랑이","무서운 호랑이 입니다.","a@naver.com",R.drawable.a));
list.add(new MyCustomDTO("사자","무서운 사자 입니다.","b@naver.com",R.drawable.b));
list.add(new MyCustomDTO("뱀","무서운 뱀 입니다.","c@naver.com",R.drawable.c));
list.add(new MyCustomDTO("코끼리","무서운 코끼리 입니다.","d@naver.com",R.drawable.d));
list.add(new MyCustomDTO("기린","무서운 기린 입니다.","e@naver.com",R.drawable.e));
ListView listView = (ListView) findViewById(R.id.listView01);
MyCustomAdapter adapter = new MyCustomAdapter(getApplicationContext(),
R.layout.list_row,list);
listView.setAdapter(adapter);
}
}
package org.android.soldesk.mylistview_011;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by soldesk on 2017-03-21.
*/
class MyCustomAdapter extends BaseAdapter {
Context ctx;
int layout;
ArrayList<MyCustomDTO> list;
LayoutInflater inf;
public MyCustomAdapter(Context ctx, int layout, ArrayList<MyCustomDTO> list) {
this.ctx = ctx;
this.layout = layout;
this.list = list;
inf = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
{
convertView = inf.inflate(layout,null);
}
TextView txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);
TextView txtContent = (TextView) convertView.findViewById(R.id.txtContent);
TextView txtEmail = (TextView) convertView.findViewById(R.id.txtEmail);
ImageView imgIcon = (ImageView) convertView.findViewById(R.id.imgIcon);
MyCustomDTO dto = list.get(position);
txtTitle.setText(dto.getTitle());
txtContent.setText(dto.getContent());
txtEmail.setText(dto.getEmail());
imgIcon.setImageResource(dto.getImgIcon());
return convertView;
}
}
package org.android.soldesk.mylistview_011;
/**
* Created by soldesk on 2017-03-21.
*/
class MyCustomDTO {
String title;
String content;
String email;
int imgIcon;
public MyCustomDTO(String title, String content, String email, int imgIcon) {
this.title = title;
this.content = content;
this.email = email;
this.imgIcon = imgIcon;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getImgIcon() {
return imgIcon;
}
public void setImgIcon(int imgIcon) {
this.imgIcon = imgIcon;
}
}
'안드로이드(Android)' 카테고리의 다른 글
8. CustomToast, Notification, Dialog, DatePicker, ProgressDialog, SeekBar (0) | 2017.03.23 |
---|---|
7. 그리드뷰(GridView), 옵션메뉴(OptionMenu), 콘텍스트 메뉴(ContextMenu), 팝업메뉴(PopupMenu) (0) | 2017.03.22 |
5. 이미지뷰(ImageView), 스위치(Switch), 체크박스(CheckBox), 라디오버튼(RadioButton) (0) | 2017.03.20 |
4. Margin_Padding, Checkbox(체크박스), Layout(레이아웃), Toggle(토글), radioButton(라디오버튼) (0) | 2017.03.17 |
3. 버튼(Button) (0) | 2017.03.16 |