2016-12-07 1 views
0

작동하지 나는 조각을 사용하여 보내 주시면 페이지에 대한 조각 호출기 어댑터를 구현 한 응용 프로그램이 있습니다. 그런 다음 조각에 EditText와 TextView가 있습니다. MainActivity.java안드로이드 스튜디오 - EditText.addTextChangedListener가

package testing.com.testing; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 

import layout.page1; 
import layout.page2; 

public class MainActivity extends AppCompatActivity { 

ViewPager mViewPager; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(new SamplePagerAdapter(
      getSupportFragmentManager())); 

} 


public class SamplePagerAdapter extends FragmentPagerAdapter { 

    public SamplePagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 

     if (position == 0) { 
      return new page1(); 
     } else 
      return new page2(); 
    } 

    @Override 
    public int getCount() { 
     return 2; 
    } 
} 

} 

내 fragment.java에서

package layout; 


import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.text.Editable; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.EditText; 
import android.widget.TextView; 

import testing.com.testing.R; 


public class page1 extends Fragment { 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.page1, container, 
      false); 
    return rootView; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    EditText text; 
    TextView textv; 
    text = (EditText) getView().findViewById(R.id.p1Name); 
    textv = (TextView) getView().findViewById(R.id.textView); 

    text.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      textv.setText(s); 
     } 
    }); 
} 

} 

는하지만이 작동하지 않습니다, 나는 TextWatcher에 오류가 그래서 나는 조각으로 EditText.addTextChangedListener을 구현하려는 오류 : 심볼 클래스 TextWatcher를 찾을 수 없습니다. 'appcompileDebugJavaWithJavac'작업에 대한 실행이 실패했습니다. 사람이 좀 도와 주실 래요 ..

답변

0

onActivityCreated(...) 방법에있는 당신의 조각 내부

당신의 조각의 레이아웃 R.id.p1NameR.id.textView 가정하면 글고 치기에 대한 참조를 얻을 저기 addTextChangedListener을 설정합니다.

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

text = (EditText) getView().findViewById(R.id.p1Name); 
textv = (TextView) getView().findViewById(R.id.textView); 

text.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 

    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     textv.setText(s); 
    } 
}); 
} 
+0

안녕하세요, 회신 주셔서 감사합니다! 내 조각에. 자바, 나는 코드를 붙여 추가했습니다. EditText 텍스트; TextView textv; 그러나 오류가 (기호 'TextWatcher'을 확인할 수 없음) TextWatcher을 위해 거기 –

+0

그래서 지금은 노력하고 있습니다.? – Nitesh

+0

아니요, 표시 : FAILURE : 예외가 발생하여 빌드가 실패했습니다. * 무엇이 잘못되었는지 : 실행이 작업 실패 ': 응용 프로그램 : compileDebugJavaWithJavac를'. > 컴파일에 실패했습니다. 자세한 내용은 컴파일러 오류 출력을 참조하십시오. * 시도 : 스택 추적을 얻을 --stacktrace 옵션 를 실행합니다. 더 많은 로그 출력을 얻으려면 --info 또는 --debug 옵션을 사용하여 실행하십시오. BUILD는 조각과 활동에 대한 전체 코드를 공유 할 수 있습니다 –

관련 문제