펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

따로 파일은 첨부하지 않겠습니다.

xml에서 버튼아이디 설정과 android:onClick="onClick" 라고 선언해주면

이렇게 동적으로 사용 가능합니다




MainActivity.java



package com.example.buttontest;


import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.TextView;


public class MainActivity extends Activity {

TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView)findViewById(R.id.tv);

}

public void onClick(View v){

switch (v.getId()){

case  R.id.bt1:

tv.setText("버튼1");

break;

case R.id.bt2:

tv.setText("버튼2");

break;

case R.id.bt3:

tv.setText("버튼3");

break;

case R.id.bt4:

tv.setText("버튼4");

break;

}

}

}






activity_main.xml



<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=".MainActivity" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <LinearLayout
        android:layout_width="wrap_content"
     android:layout_height="wrap_content">
    
    <Button
        android:id="@+id/bt1"
        android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text="버튼1"
     android:onClick="onClick"/>
    
    <Button
        android:id="@+id/bt2"
        android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text="버튼2"
     android:onClick="onClick"/>
 
    </LinearLayout>
     <LinearLayout
        android:layout_width="wrap_content"
     android:layout_height="wrap_content">
    
    <Button
        android:id="@+id/bt3"
        android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text="버튼3"
     android:onClick="onClick"/>
    
    <Button
        android:id="@+id/bt4"
        android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text="버튼4"
     android:onClick="onClick"/>
 
    </LinearLayout>   
    
    
    
</LinearLayout>


펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


timer3.zip


따로 주석은 없으니 궁금한점은 댓글 남겨주세요



숫자를 초단위로 입력받아 계산버튼을 누르면 자동으로 시간,분,초로 반환해주고 시작버튼을 누르면

카운트다운이 시작됩니다.


쉐어드프레퍼런스를 이용해 시간값을 저장했기때문에 종료했다가 켜도 마지막 시간이 그대로 남아있습니다.


공부용으로 만드느라 타이머를 구현해주는 API등은 사용하지 않았기때문에 많이 미흡합니다.



MainActivity.java


package com.example.timer3;


import android.app.Activity;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;


public class MainActivity extends Activity {

SharedPreferences prefs;

Editor ePref;

Button start,go,stop,allstop;

Boolean bool = true;

EditText in;

TextView tv;

String text,Str;

int t,hour,minute,second;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

start = (Button)findViewById(R.id.start);

go = (Button)findViewById(R.id.go);

stop = (Button)findViewById(R.id.stop);

allstop = (Button)findViewById(R.id.allstop);

in = (EditText)findViewById(R.id.in);

tv = (TextView)findViewById(R.id.tv);


prefs = getSharedPreferences("Save",Activity.MODE_PRIVATE);

t = prefs.getInt("t",t);

sum();

Str = String.format("%02d시간 %02d분 %02d초",hour,minute,second);

tv.setText(Str);

in.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

in.setText("");

}

});

start.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {  

try{

text = in.getText().toString();

t = Integer.parseInt(text);

sum();

Str = String.format("%02d시간 %02d분 %02d초",hour,minute,second);

tv.setText(Str);

}catch(Exception e){}

}

});

go.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

bool = true;

thread threadTest = new thread();

threadTest.setDaemon(true);

   threadTest.start();

}

});

stop.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

bool = false;

}

});

allstop.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

bool = false;

t = 0;

sum();

Str = String.format("%02d시간 %02d분 %02d초",hour,minute,second);

tv.setText(Str);

}

});

}


public class thread extends Thread{

public void run(){

while(bool){

handler.sendEmptyMessage(0);

try{

Thread.sleep(1000);

}catch (Exception e){}

}

}

}

Handler handler = new Handler(){

public void handleMessage(Message msg){

if(msg.what ==0){

if(t>0){

Log.d("fureun","XD");

t--;

sum();

Str = String.format("%02d시간 %02d분 %02d초",hour,minute,second);

tv.setText(Str);

}

}

}

};

public void sum(){

hour =  t/3600;

minute = (t%3600)/60;

second = (t%3600)%60;

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

bool = false;

ePref = prefs.edit();

ePref.putInt("t",t);

ePref.commit();

}

}






activity_main.xml




<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
android:gravity="center|top"
android:orientation="vertical"
    tools:context=".Mai`nActivity" >
    <TextView
        android:id="@+id/tv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    android:layout_centerVertical="true"    
        android:textSize="20pt"
android:gravity="center_horizontal"
android:paddingBottom="30pt"
android:paddingTop="30pt"
        android:text="00시간 00분 00초" />
<EditText
   android:id="@+id/in"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_marginBottom="30pt"
   android:text="시간을입력하세요"/>
<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
  android:orientation="horizontal"
   >
<Button
   android:id="@+id/start"
   android:layout_width="wrap_content"
        android:layout_height="wrap_content"
android:layout_weight="1"
        android:text="계산" />
  <Button
   android:id="@+id/go"
   android:layout_width="wrap_content"
        android:layout_height="wrap_content"
android:layout_weight="1"
        android:text="시작" />
  <Button
   android:id="@+id/stop"
   android:layout_width="wrap_content"
        android:layout_height="wrap_content"
android:layout_weight="1"
        android:text="일시정지" />
<Button
   android:id="@+id/allstop"
   android:layout_width="wrap_content"
        android:layout_height="wrap_content"
android:layout_weight="1"
        android:text="중지" />
   
</LinearLayout>
</LinearLayout>


'Android > 예제' 카테고리의 다른 글

XmlPullParser를 이용한 파싱 예제  (2) 2013.07.24

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


Wificheck.zip


와이파이가 연결되어있다는 가정하에 만들었습니다.

연결안되어도 에러는 나지 않습니다. 와이파이 연결 후 속도측정용입니다.


공부할겸 만든거라 WifiInfo를 이용해 띄운 와이파이 명 , WifiManager를 이용해 띄운 속도 밖에 없습니다.


주석은 안달려있으니 궁금하신점은 댓글로 남겨주세요



매니패스트 퍼미션은


    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>


두줄 추가입니다



package com.example.wificheck;



import android.app.Activity;

import android.net.wifi.WifiInfo;

import android.net.wifi.WifiManager;

import android.os.Bundle;

import android.os.Handler;

import android.util.Log;

import android.view.Menu;

import android.widget.TextView;


public class MainActivity extends Activity {

WifiManager wifiManager,wifiManager2;

TextView tv;

WifiInfo wifi,wifi2;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView)findViewById(R.id.tv);

wifiManager2 = (WifiManager)getSystemService(WIFI_SERVICE);

wifi2 = wifiManager2.getConnectionInfo();

handler.post(callback);

}

Handler handler = new Handler();

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}


public Runnable callback = new Runnable(){

@Override

public void run() {

Boolean bool = wifiManager2.isWifiEnabled();

// TODO Auto-generated method stub

handler.postDelayed(callback, 1000);

wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);

wifi = wifiManager.getConnectionInfo();

String wifiinfo = WifiInfo.LINK_SPEED_UNITS;

int speed = wifi.getLinkSpeed();

String name = wifi.getSSID();

String TEXT = "Wifi Name : "+name+"\n"+"Speed : "+ String.valueOf(speed)+" "+wifiinfo;

tv.setText(TEXT);

}

};

}