2013-12-19 1 views

답변

3

사전에

public class MainActivity extends Activity { 

EditText inputElement; 
Spinner spinner; 
MySQLiteAdapters adapter; 
MySQLiteHelper helper_ob; 
AlertDialog dialog; 
List<String> lables; 
String contents; 
ArrayAdapter<String> dataAdapter; 
public static final String PREFS = "examplePrefs"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button start = (Button) findViewById(R.id.start); 
    //start.setVisibility(View.GONE); 
    spinner = (Spinner) findViewById(R.id.spinner1); 
    inputElement = new EditText(this); 
    adapter = new MySQLiteAdapters(getApplicationContext()); 
    lables = adapter.getAllLabels(); 
    exmaplePrefs = getSharedPreferences(PREFS, 0); 
    editor = exmaplePrefs.edit(); 

    final AlertDialog firstTimeUse = new AlertDialog.Builder(this) 
      .setView(inputElement) 
      .setTitle("TITLE") 
      .setCancelable(false) 
      .setPositiveButton(android.R.string.ok, null).create(); 

    firstTimeUse.setOnShowListener(new DialogInterface.OnShowListener() { 

     @Override 
     public void onShow(DialogInterface dialog) { 
      Button b = firstTimeUse.getButton(AlertDialog.BUTTON_POSITIVE); 
      b.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        contents = inputElement.getText().toString(); 
        if (contents.matches("")){ 
         showAlertbox("You Must Enter a Team"); 
        }else{ 
         adapter.insertTeamDetails(contents); 
         List<String> lables = adapter.getAllLabels(); 
         dataAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item, lables); 
         spinner.setAdapter(dataAdapter); 
         lables.add("Add New Team..."); 
         firstTimeUse.dismiss(); 
        } 

       } 

      }); 
     } 
    }); 


    if (lables.isEmpty()) 
    { 
     firstTimeUse.show(); 
    } 
    else{ 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(dataAdapter); 
     lables.add("Add New Team..."); 
    } 

감사 :

inputElement = new EditText(this); 

그래서 그것의 텍스트는 항상 비어 코드

contents = inputElement.getText().toString(); 

레이아웃에 추가하지 마십시오.

findViewById을 사용하여 레이아웃에서 인스턴스화하거나 코드의 레이아웃에 추가하십시오.

+0

.setView (inputElement)는 AlertDialog에 추가하지 않습니까? –

+0

나는 이런 식으로 사용 된 적이 한번도 보지 못했습니다. 일반적으로 뷰의 요소를 추가하고 찾은 뷰를 확장합니다. 다음과 같이 : http://developer.android.com/guide/topics/ui/dialogs.html#CustomLayout – Szymon

1

SetView(View view)은 뷰 요소를 취합니다. 어떻게 거기에 EditText를 추가 할 지 모르겠습니다. 당신은 레이아웃 파일 자체가 이런 일에 편집 텍스트를 추가 할 수 있습니다 :

이 같은에서 onCreate 뭔가를 선언

inputElement = (EditText) findViewById(R.id.EditTextPassword); 

당신은 다음과 같은 문자열을 얻을 수 있습니다 :

inputElement.getText().toString(); 
관련 문제