eNB값 가져오기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package com.ghj.enbex;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.telephony.gsm.GsmCellLocation;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
    TextView txtEnb;
 
    //manager
    TelephonyManager telephonyManager;
    GsmCellLocation gsmCellLocation;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        txtEnb = (TextView)findViewById(R.id.txtEnb);
 
        //manager
        telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
 
        if(telephonyManager.getPhoneType()==TelephonyManager.PHONE_TYPE_GSM){
            gsmCellLocation = (GsmCellLocation)telephonyManager.getCellLocation();
            //리스너
            telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
        }
    }
 
    //리스너
    PhoneStateListener mPhoneStateListener = new PhoneStateListener(){
        @Override
        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
            super.onSignalStrengthsChanged(signalStrength);
 
            //eNB
            if(gsmCellLocation!=null){
                int enb = getCellIDeNB();
                txtEnb.setText("eNB : "+enb);
            }
        }
    };
 
    //eNB
    public int getCellIDeNB(){
 
        //10진수 cid
        int cellid = gsmCellLocation.getCid();
 
        //16진수 cid
        String cellidHex = DecToHex(cellid);
 
        //16진수 eNB
        String eNBHex = cellidHex.substring(0, cellidHex.length()-2);
 
        //10진수 eNB
        int eNB = HexToDec(eNBHex);
        return eNB;
    }
 
    //10진수 -> 16진수
    public String DecToHex(int dec){
        return String.format("%x", dec);
    }
 
    //16진수 -> 10진수
    public int HexToDec(String hex){
        return Integer.parseInt(hex, 16);
    }
 
 
    @Override
    protected void onDestroy() {
        telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
        super.onDestroy();
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:id="@+id/txtEnb"
        android:textSize="24dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
</LinearLayout>
 
cs



AndroidManifest.xml)

1
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
cs



결과



RSRP값 가져오기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.ghj.rsrpex2;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
    TextView txtRsrp;
 
    //manager
    TelephonyManager telephonyManager;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        txtRsrp = (TextView)findViewById(R.id.txtRsrp);
 
        //manager
        telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
        if(telephonyManager.getNetworkType()==TelephonyManager.NETWORK_TYPE_LTE){
            //리스너 등록
            telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
        }
    }
 
    //리스너
    PhoneStateListener mPhoneStateListener = new PhoneStateListener(){
        @Override
        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
            super.onSignalStrengthsChanged(signalStrength);
 
            //RSRP (Reference Signal Received Power) - 단위 dBm (절대크기). - 단말에 수신되는 Reference Signal의 Power
            String strSignal = signalStrength.toString();
            Log.d("SignalStrength", strSignal);
 
            txtRsrp.setText("RSRP : "+GetLTE_RSRP(strSignal));
        }
    };
 
    //LTE RSRP 구하기
    public int GetLTE_RSRP(String signalStrength){
        String[] arrSignal = signalStrength.split(" ");
        int lteRSRP = 0;
        try{
            if(arrSignal.length>13){
                lteRSRP = Integer.parseInt(arrSignal[9]);
            }
        }catch (NumberFormatException e){
            e.printStackTrace();
        }
 
        return lteRSRP;
    }
 
 
    @Override
    protected void onDestroy() {
        telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
        super.onDestroy();
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:id="@+id/txtRsrp"
        android:textSize="24dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
</LinearLayout>
 
cs



결과


구글플레이로 이동하기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.example.gwon.blog_046;
 
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    public void mOnAppDownload(View v){
        if(!IsExistApp("com.ghj.jeonjutour")){
            //다운하러 구글플레이 호출
            Intent marketLaunch = new Intent(Intent.ACTION_VIEW);
            marketLaunch.setData(Uri.parse("market://details?id=com.ghj.jeonjutour"));
            startActivity(marketLaunch);
        }else{
            Toast.makeText(this"이미 설치되어 있습니다.", Toast.LENGTH_SHORT).show();
        }
    }
 
    //앱 있는지 확인
    public boolean IsExistApp(String packageName) {
        PackageManager pm = getPackageManager();
        try {
            pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <Button
        android:text="앱다운"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="mOnAppDownload"/>
 
</LinearLayout>
 
cs



결과

 


설정화면으로 시작하기



FILE -> Settings -> Appearance&Behavior -> System Settings


Reopen last project on startup 체크를 해제한다.




스피너 커스텀하기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.example.gwon.blog_045;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Spinner;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
    //UI
    Spinner spinner1;
 
    //Adapter
    AdapterSpinner1 adapterSpinner1;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //데이터
        List<String> data = new ArrayList<>();
        data.add("가짜 데이터 1"); data.add("가짜 데이터 2"); data.add("가짜 데이터 3"); data.add("가짜 데이터 4"); data.add("가짜 데이터 5");
        data.add("가짜 데이터 6"); data.add("가짜 데이터 7"); data.add("가짜 데이터 8"); data.add("가짜 데이터 9"); data.add("가짜 데이터 10");
 
        //UI생성
        spinner1 = (Spinner)findViewById(R.id.spinner1);
 
        //Adapter
        adapterSpinner1 = new AdapterSpinner1(this, data);
 
        //Adapter 적용
        spinner1.setAdapter(adapterSpinner1);
    }
}
 
cs



Adapter)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.example.gwon.blog_045;
 
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
 
import java.util.List;
 
/**
 * Created by gwon on 2016-12-03.
 */
 
public class AdapterSpinner1 extends BaseAdapter {
 
 
    Context context;
    List<String> data;
    LayoutInflater inflater;
 
 
    public AdapterSpinner1(Context context, List<String> data){
        this.context = context;
        this.data = data;
        inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
 
    @Override
    public int getCount() {
        if(data!=nullreturn data.size();
        else return 0;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView==null) {
            convertView = inflater.inflate(R.layout.spinner_spinner1_normal, parent, false);
        }
 
        if(data!=null){
            //데이터세팅
            String text = data.get(position);
            ((TextView)convertView.findViewById(R.id.spinnerText)).setText(text);
        }
 
        return convertView;
    }
 
    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        if(convertView==null){
            convertView = inflater.inflate(R.layout.spinner_spinner1_dropdown, parent, false);
        }
 
        //데이터세팅
        String text = data.get(position);
        ((TextView)convertView.findViewById(R.id.spinnerText)).setText(text);
 
        return convertView;
    }
 
    @Override
    public Object getItem(int position) {
        return data.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
}
 
 
cs



activity_main.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.gwon.blog_045.MainActivity">
 
    <Spinner
        android:id="@+id/spinner1"
        android:background="@drawable/spinner_spinner1"
        android:layout_width="match_parent"
        android:layout_height="30dp" />
 
</RelativeLayout>
 
cs



spinner_spinner1_normal.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center_vertical"
    android:paddingLeft="13dp"
    android:paddingRight="13dp"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <ImageView
        android:src="@drawable/img_wifi_lock"
        android:layout_width="24dp"
        android:layout_height="24dp" />
 
    <TextView
        android:id="@+id/spinnerText"
        android:textSize="15sp"
        android:textColor="#000"
        android:alpha="0.87"
        android:paddingLeft="13dp"
        android:textColorHint="#1f000000"
        android:gravity="center"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
 
    <ImageView
        android:src="@drawable/img_arrow_down"
        android:scaleType="centerInside"
        android:layout_width="20dp"
        android:layout_height="match_parent" />
 
</LinearLayout>
 
 
cs



spinner_spinner1_dropdown.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center_vertical"
    android:padding="5dp"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <ImageView
        android:src="@drawable/img_wifi_lock"
        android:layout_width="24dp"
        android:layout_height="24dp" />
 
    <TextView
        android:id="@+id/spinnerText"
        android:textSize="15sp"
        android:textColor="#000"
        android:alpha="0.87"
        android:paddingLeft="13dp"
        android:textColorHint="#1f000000"
        android:gravity="center"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
 
</LinearLayout>
 
cs



drawable > spinner_spinner1,xml

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <stroke android:color="#c3cad1" android:width="1dp" />
            <corners android:radius="5dp" />
            <solid android:color="#fff" />
        </shape>
    </item>
</selector>
 
cs



결과

 


통신사, 전화번호 가져오기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.example.gwon.blog_044;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
    TextView txtTelecom, txtPhoneNo;
 
    //manager
    TelephonyManager telephonyManager;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        txtTelecom = (TextView)findViewById(R.id.txtTelecom);
        txtPhoneNo = (TextView)findViewById(R.id.txtPhoneNo);
 
        //manager
        telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
 
        //통신사 전화번호 구하기
        txtTelecom.setText("통신사 : "+getTelecomName());
        txtPhoneNo.setText("전화번호 : "+getPhoneNumber());
    }
 
    //통신사 정보
    public String getTelecomName(){
        return telephonyManager.getNetworkOperatorName();
    }
    //전화번호
    public String getPhoneNumber(){
        return telephonyManager.getLine1Number();
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:id="@+id/txtTelecom"
        android:textSize="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
    <TextView
        android:id="@+id/txtPhoneNo"
        android:textSize="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
 
cs



AndroidManifest.xml)

1
2
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
cs



결과


카메라앱 호출하여 사진찍고 이미지뷰에 출력하기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.example.gwon.blog_043;
 
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
 
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
    Button btnCamera;
    ImageView img;
 
    //request code
    final int CAMERA_REQUEST_CODE = 1;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        btnCamera = (Button)findViewById(R.id.btnCamera);
        img = (ImageView)findViewById(R.id.img);
 
        btnCamera.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                if(IsCameraAvailable()){
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 
                    startActivityForResult(intent, CAMERA_REQUEST_CODE);
                }
            }
        });
    }
 
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==CAMERA_REQUEST_CODE){
            Bundle bundle = data.getExtras();
            Bitmap bitmap = (Bitmap)bundle.get("data");
            img.setImageBitmap(bitmap);
        }
    }
 
    //카메라 유무
    public boolean IsCameraAvailable(){
        PackageManager packageManager = getPackageManager();
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
        return list.size() > 0;
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <Button
        android:id="@+id/btnCamera"
        android:text="카메라"
        android:textSize="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
    <ImageView
        android:id="@+id/img"
        android:background="#eee"
        android:scaleType="fitCenter"
        android:layout_width="match_parent"
        android:layout_height="200dp" />
 
</LinearLayout>
 
cs



AndroidManifest.xml)

1
<uses-feature android:name="android.hardware.camera" />
cs



결과


텍스트(.txt)파일 읽기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.ghj.blog_042;
 
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
public class MainActivity extends AppCompatActivity {
 
    TextView txtRead;
    final static String filePath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/TestLog/logfile.txt";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        txtRead = (TextView)findViewById(R.id.txtRead);
    }
 
    public void mOnFileRead(View v){
        String read = ReadTextFile(filePath);
        txtRead.setText(read);
    }
 
 
    //경로의 텍스트 파일읽기
    public String ReadTextFile(String path){
        StringBuffer strBuffer = new StringBuffer();
        try{
            InputStream is = new FileInputStream(path);
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            String line="";
            while((line=reader.readLine())!=null){
                strBuffer.append(line+"\n");
            }
 
            reader.close();
            is.close();
        }catch (IOException e){
            e.printStackTrace();
            return "";
        }
        return strBuffer.toString();
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <Button
        android:text="파일읽기"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="mOnFileRead"/>
 
    <TextView
        android:id="@+id/txtRead"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
 
</LinearLayout>
 
cs



AndroidManifest.xml)

1
2
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 
cs



결과


텍스트(.txt)파일 쓰기



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.ghj.blog_041;
 
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class MainActivity extends AppCompatActivity {
 
    final static String foldername = Environment.getExternalStorageDirectory().getAbsolutePath()+"/TestLog";
    final static String filename = "logfile.txt";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    //버튼클릭
    public void mOnFileWrite(View v){
        String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        String contents = "Log 생성 : "+now+"\n";
 
        WriteTextFile(foldername, filename, contents);
    }
 
    //텍스트내용을 경로의 텍스트 파일에 쓰기
    public void WriteTextFile(String foldername, String filename, String contents){
        try{
            File dir = new File (foldername);
            //디렉토리 폴더가 없으면 생성함
            if(!dir.exists()){
                dir.mkdir();
            }
            //파일 output stream 생성
            FileOutputStream fos = new FileOutputStream(foldername+"/"+filename, true);
            //파일쓰기
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos));
            writer.write(contents);
            writer.flush();
 
            writer.close();
            fos.close();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
<?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">
 
    <Button
        android:text="파일쓰기"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="mOnFileWrite"/>
</LinearLayout>
 
cs



AndroidManifest.xml)

1
2
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
cs



결과


리스트 다이얼로그 (List Dialog) 예제



java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.ghj.blog_040;
 
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Toast;
 
import org.json.JSONException;
 
public class MainActivity extends AppCompatActivity {
 
    //List Dialog Adapter
    ArrayAdapter<String> adapter;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //Adapter
        adapter = new ArrayAdapter<>(this, android.R.layout.select_dialog_singlechoice);
        adapter.addAll("짜장면""짬뽕""볶음밥""잡채밥""짬짜면""울면");
        adapter.notifyDataSetChanged();
    }
 
    //버튼클릭
    public void mOnMenu(View v){
        CreateListDialog();
    }
 
    //리스트 다이얼로그 생성
    public void CreateListDialog(){
        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setTitle("사당반점");     //타이틀
        alert.setIcon(R.drawable.icon); //아이콘
 
        //어답터 , 클릭이벤트 설정
        alert.setAdapter(adapter, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String menu = adapter.getItem(which);
                Toast.makeText(MainActivity.this"선택한 메뉴 : "+menu, Toast.LENGTH_SHORT).show();
            }
        });
        alert.show();
    }
}
 
cs



xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <Button
        android:text="메뉴선택"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="mOnMenu"/>
 
</LinearLayout>
 
cs



결과

 


+ Recent posts