public boolean onKeyDown(int keyCode, KeyEvent event){
	     switch(keyCode){
	     case KeyEvent.KEYCODE_BACK:
	      String alertTitle = getResources().getString(R.string.app_name);
	      String buttonMessage = "어플을 종료하시겠습니까?";
	      String buttonYes = "Yes";
	      String buttonNo = "No";
	         
	      new AlertDialog.Builder(WriteActivity.this)
	      .setTitle(alertTitle)
	      .setMessage(buttonMessage)
	      .setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
	       
	       @Override
	       public void onClick(DialogInterface dialog, int which) {
	        // TODO Auto-generated method stub
	        moveTaskToBack(true);
	        finish();
	       }
	      })
	      .setNegativeButton(buttonNo, null)
	      .show();
	     }
	    return true

     }

이 메소드를 추가시켜주면 됩니다. 


Posted by 세이나린
,

Activity를 전환 할때 값을 전달하는 방법을 설명하겠습니다.


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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="첫번째 페이지"
        />
    
    <EditText
        android:id="@+id/txt_main"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=""
        />
    
    <Button
        android:id="@+id/btn_intent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="두번째 페이지로 이동"
        tools:context=".MainActivity" />
  

</LinearLayout>

아까 했던 xml파일에 EditText를 추가시켰습니다.


MainActivity.java

package com.example.android_test1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {
	Button btn_intent;
	EditText txt_main;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        txt_main = (EditText)findViewById(R.id.txt_main);
        btn_intent = (Button)findViewById(R.id.btn_intent);
        btn_intent.setOnClickListener(this);
    }
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		Intent intent = new Intent(this, NextActivity.class);
		intent.putExtra("name",txt_main.getText().toString());
		startActivity(intent);
		finish();
	}
 

}


txt_main에 입력한 값을 불러와 intent를 할때 putExtra를 이용해 값을 넘겨줍니다.

txt_main의 값은 txt_main.getText().toString()을 이용하면 됩니다. 


activity_next.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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="두번째 페이지"
        />
    
    <TextView
        android:id="@+id/txt_next"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=""
        />
    
    <Button
        android:id="@+id/btn_intent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="첫번째 페이지로 이동"
       />
 

</LinearLayout>

이곳에는 TextView를 추가시켜줬습니다.


NextActivity.java

package com.example.android_test1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class NextActivity extends Activity implements OnClickListener {
	Button btn_intent;
	TextView txt_next;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_next);
        
    	Intent intent = getIntent();
    	String name = intent.getStringExtra("name");
		
		txt_next = (TextView)findViewById(R.id.txt_next);
		txt_next.setText(name);
        
        btn_intent = (Button)findViewById(R.id.btn_intent);
        btn_intent.setOnClickListener(this);
    }
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		Intent intent = new Intent(this, MainActivity.class);
		startActivity(intent);
		finish();
	}

}


이곳에선 getIntet()를 이용해서 값을 받아옵니다.

name을 보냈으니 name을 받아서 name에 저장합니다. (으잉? 변수명을 너무 똑같이 지었나요..)






홍길동이 잘 전달되었네요




Posted by 세이나린
,

리스트뷰를 이용해서 출력을 해보았습니다.

그러면 이번에는 해당 리스트를 클릭했을때 이벤트를 발생해 보겠습니다.




토스트(Toast)라는 것을 이용해서 창을 잠깐 띄어주줍니다.


MainActivity.java

package com.example.android_test1;

import java.util.ArrayList;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
	ArrayList<String> arraylist;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		arraylist = new ArrayList<String>();
		arraylist.add("가");
		arraylist.add("나");
		arraylist.add("다");
		arraylist.add("라");
		
		ArrayAdapter<String> Adapter;
		Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arraylist);

		setListAdapter(Adapter);
	}
	
	public void onListItemClick(ListView list, View view, int position, long id) {
		String mes;
		mes = "Select Item = " + arraylist.get(position);
		Toast.makeText(MainActivity.this, mes, Toast.LENGTH_SHORT).show();
	}

}


이번에는 소스를 조금 수정하였습니다.

상속도 Activity가 아닌 ListActivity를 상속하였고

setContentView를 사용하지 않습니다. xml을 불러오지 않는다는 것이죠


그리고 출력만 했을때에는 ListView를 xml에서 받아와서 setAdapter로 연결했지만

이곳에선 xml을 사용하지 않았기 때문에


setListAdapter를 사용합니다.


그리고 onListItemClick메소드를 만들어줍니다.


리스트를 클릭했을때 발생하는 이벤트를 입력합니다.

이번에는 간단하게 Toast를 발생시켰지만 intent를 이용해서 화면전환도 가능합니다.



Posted by 세이나린
,