스크롤뷰(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;
}
}

+ Recent posts