2014-11-02 2 views
2

두 번째 작업에서 데이터를 가져 오려고 했으므로 startActivity 메서드를 사용하여이 목표를 달성했습니다. 내가 Uri.parse()가 작동하지 않습니다에서 "텍스트"를 넣을 때 저를 혼동 무엇이 경우 startActivityForResult() 메서드가 작동하지 않는 이유

final EditText editText=(EditText)findViewById(R.id.edit); 
    final String text=editText.getText().toString(); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent=new Intent(); 
      intent.setData(Uri.parse(text); 
      setResult(RESULT_OK,intent); 
      finish(); 
     } 
    }); 

이다, 그래서 나는 Uri.parse (editText.getText(). toString)로 변경, 그것은 단지 공장.

그럼 정확히 어떻게 다른가요?

답변

0

당신이 이런 짓을하기 때문에 :

final String text=editText.getText().toString(); 

final 키워드가 텍스트의 값을 "정지"(당신이 init 함수에있는 것처럼 보이는 이후 아마도 빈 문자열). 따라서 textonClick() 안에 사용하면 고정 된 값인 text을 참조하게됩니다. 당신이 버튼을 클릭하는 시간에 editText의 현재 값을 원하는 경우에, 당신은 onClick() 내부의 값을 얻을 필요는 editTextfinal 키워드를해야합니까 그렇지 않으면 당신은 할 수 없을 것입니다

intent.setData(Uri.parse(editText.getText().toString())); 

주 안에서 사용하려면 onClick().

1

다른 값을 가지고이 때문에 :

final String text=editText.getText().toString(); 

그래서, Uri.parse(text)onClick 일이 전에 텍스트 를 반환합니다

당신이 코드 onClick 외부을 넣어.

그러나 Uri.parse(editText.getText().toString)을 사용하는 경우 onClick (실시간)을 호출하면 텍스트를 구문 분석합니다.

관련 문제