2012-11-28 4 views
0

회 전자가 지정된 다른 값을 다른 값으로 보내는 방법 :회 전자가 다른 값을 보내려면

예를 들면 다음과 같습니다. 모든 유형의 사용자 클릭, 대신 모든 유형, 난에 alltypes 필요

지금
<?xml version="1.0" encoding="utf-8" ?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <string name="app_name">My First App</string> 
    <string name="edit_message">Search the Movie Title</string> 
    <string name="button_send">Search</string> 
    <string name="menu_settings">Settings</string> 
    <string name="title_activity_main">MainActivity</string> 

    <string-array name="title_type"> 
     <item>All Types</item> 
     <item>Feature Film</item> 
     <item>TV Series</item> 
     <item>Video Game</item> 
    </string-array> 
</resources> 

이 전송되었습니다 : 내 strings.xml의 다음과 같은 것이있다. 그 이유는 데이터를 가져 오기 위해 "alltypes"를 받아들이는 URL을 생성해야하기 때문입니다. 나는 안드로이드 프로그래밍 비교적 새로운 오전

public class MainActivity extends Activity { 

private Button btn; 
private EditText edit; 
private Spinner spinner; 
private TextView textView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btn = (Button) findViewById(R.id.button); 
    edit = (EditText) findViewById(R.id.edit_message); 
    spinner = (Spinner) findViewById(R.id.spinner); 
    textView = (TextView) findViewById(R.id.textView1); 

    btn.setOnClickListener(
      new View.OnClickListener() 
      { 
       public void onClick(View view) 
       { 
        //Log.v("EditText", edit.getText().toString()); 
        //Log.v("Spinner", spinner.getSelectedItem().toString()); 
        //if(spinner.getSelectedItem().toString()=="All Types") 

        String url="http://cs-server.xxx.edu:23405/examples/servlet/HelloWorldExample?title="+edit.getText().toString()+"&type="+spinner.getSelectedItem().toString(); 
        Log.v("url",url); 
       } 
      }); 



ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.title_type,android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

//String url="http://cs-server.xxx.edu:23405/examples/servlet/HelloWorldExample?tit le="+edit.getText().toString()+"&type="+spinner.getSelectedItem().toString(); 
    // Log.v("url",url); 

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     //Object item = parent.getItemAtPosition(pos); 

    } 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}); 


} 

private class DownloadWebPageTask extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... urls) { 
     String response = ""; 
     for (String url : urls) { 
     DefaultHttpClient client = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(url); 
     try { 
      HttpResponse execute = client.execute(httpGet); 
      InputStream content = execute.getEntity().getContent(); 

      BufferedReader buffer = new BufferedReader(new InputStreamReader(content)); 
      String s = ""; 
      while ((s = buffer.readLine()) != null) { 
      response += s; 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     } 
     return response; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     textView.setText(result); 
    } 
    } 

    public void readWebpage(View view) { 
    DownloadWebPageTask task = new DownloadWebPageTask(); 
    task.execute(new String[] { "http://facebook.com"}); 

    } 
} 

:

나는 나의 MainActivity.java 코드가 있습니다. 어떻게 할 수 있습니까?

답변

1
yourspinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) 
      { 
       String selecteditem = yourspinner.getSelectedItem().toString(); 
       selecteditem = selecteditem.equals("All Types")?selecteditem..replaceAll(" ", "").toLowerCase():selecteditem; 
       // removes the space and converts to lowercase 
      } 

      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 

두 번째 옵션.

String[] customarr = {"feature,tv_series,game","feature","tv_series","game"}; 
String selecteditem = customarr[yourspinner.getSelectedItemPosition()] 
+0

내가 통해 UR 포인트를 얻을 수 있지만 내가 무슨 말을하려고 만 "모든 유형"의 경우는 alltypes을 필요로한다는 것입니다 것입니다. 다른 세 가지 회 전자 옵션이 있습니다, 나는 그들 각각에 대한 개별 데이터가 필요합니다 ... 예를 들어, "Feature Film"에 대해, 필자는 기능 등이 필요합니다 ... 또한, URL을 형성 한 후 json을 가져와야합니다 내 서버의 데이터를 분석하고 구문 분석합니다. 어떤 아이디어 나 어떻게 할 수있는, 또는 튜토리얼 u는 나를 참조 할 수 있습니다.? – PSN

+0

ok 그런 다음 if (position == 0)과 같이 if 조건에서 위치를 확인한 다음 –

+0

으로 변경하여 예제 중 하나를 나타내는 코드를 수정할 수 있습니까? "모든 유형 "나는 all_types를 생성해야합니다 ... 당신은 if 문을 사용하여 시도했지만, 어떤 함수를 사용해야하는지 익숙하지 않다는 것을 알 수 있습니다 ... – PSN

1

다음 접근 방식을 사용할 수 있습니다. 코드에서

<string-array name="title_values"> 
     <item>alltypes</item> 
     <item>featurefilm</item> 
     <item>tvseries</item> 
     <item>videogame</item> 
</string-array> 

수정은

String[] titleValues = getResources().getStringArray(
       R.array.title_values); 



titleSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

    public void onItemSelected(AdapterView <? > adapterView, View view, 
    int position, long id) { 

     String selectedItem = titleValues[position]; 

    } 

    public void onNothingSelected(AdapterView <? > arg0) { 


    } 
}); 
+0

하지만 스피너는 "모든 유형"을 사용자에게 표시해야합니다. 질문에 제 코드를 넣고 있습니다. 당신이 할 일을 정확히 인도 해 줄 수 있니? – PSN

+0

내가하려고하는 것은 사용자가 "모든 유형"을 클릭 할 때마다 내가 호출하려고하는 서버의 URL을 형성하기 위해 alltype을 전송해야한다는 것입니다. 내 서버는 Json 데이터를 반환합니다. 분석합니다. 내가 참조 할 수있는 동일하거나 다른 튜토리얼을 수행 할 때 나를 안내 할 수 있습니까? – PSN

관련 문제