C:\Android\android-ndk-1.6_r1\apps\hello-jni\project\src\com\example\hellojni\HelloJni.javaJNI테스트
/*
 * Copyright (C) 2009 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.example.hellojni;import android.app.Activity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class HelloJni extends Activity {
 private EditText editText;
 
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  editText = (EditText)findViewById(R.id.EditTextResult);
  
  editText.setText("test");
  
  Toast.makeText(HelloJni.this, stringFromJNI(), Toast.LENGTH_SHORT).show();
  
  Spinner spinnerCmd = (Spinner) findViewById(R.id.SpinnerCmd);

  ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
    R.array.cmd, android.R.layout.simple_spinner_item);

  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

  spinnerCmd.setAdapter(adapter);
  
  spinnerCmd.setOnItemSelectedListener(new OnItemSelectedListener(){
   
   @SuppressWarnings("unchecked")
   public void onItemSelected(AdapterView parent, View v, int position, long id) {
    int ret = sendCmdToServiceJNI(parent.getSelectedItemPosition());
    //editText.setText(ret);
    //Toast.makeText(HelloJni.this, ret, Toast.LENGTH_SHORT).show();
    
    return;
      }
   
      @SuppressWarnings("unchecked")
   public void onNothingSelected(AdapterView parent) {
       
      }      
     });
  
  Toast.makeText(HelloJni.this, startServiceJNI(), Toast.LENGTH_SHORT).show();
 }

 /*
  * A native method that is implemented by the 'hello-jni' native library,
  * which is packaged with this application.
  */
 public native String stringFromJNI();

 public native String startServiceJNI();

 public native int sendCmdToServiceJNI(int _cmd);

 /*
  * This is another native method declaration that is *not* implemented by
  * 'hello-jni'. This is simply to show that you can declare as many native
  * methods in your Java code as you want, their implementation is searched
  * in the currently loaded native libraries only the first time you call
  * them.
  * 
  * Trying to call this function will result in a
  * java.lang.UnsatisfiedLinkError exception !
  */
 public native String unimplementedStringFromJNI();

 public native String unimplementedStartServiceJNI();

 public native int unimplementedSendCmdToServiceJNI(int _cmd);

 /*
  * this is used to load the 'hello-jni' library on application startup. The
  * library has already been unpacked into
  * /data/data/com.example.HelloJni/lib/libhello-jni.so at installation time
  * by the package manager.
  */
 static {
  System.loadLibrary("hello-jni");
 }
}

제가 작성한 풀 소스 입니다.

그런데...
주석 처리한 부분에서 죽습니다.

    //editText.setText(ret);
    //Toast.makeText(HelloJni.this, ret, Toast.LENGTH_SHORT).show();

분명 위에서는 editText에 잘 출력을 하고 있는데...
Event처리 안에서는 문제가 있네요... ???

setOnItemSelectedListener를 사용한 이유는 Spinner눈 setOnItemClickListener() 이벤트를 지원하지 않는 다고 하네요.

뭔가 이벤트 처리를 잘못한건지...
아니면 Spinner는 Event 처리시 상위 View에 있는 Widget을 핸들링 못하는 것인지...

onItemSelected, onNothingSelected 도 오버라이딩하는 방식이 아니더라구요....(실제로 인터페이스 같음)
(보통 이벤트 처리는 오버라이딩해서 사용하죠그래서 그런가?)