2016-12-07 7 views
0

Ich habe eine Anwendung, die ich Fragment Pager Adapter zum Durchblättern von Seiten mit Fragment implementiert hatte. Dann hat es auf dem Fragment einen EditText und eine TextView. Ich möchte EditText.addTextChangedListener in das Fragment implementieren, so bei MainActivity.javaAndroid Studio - EditText.addTextChangedListener funktioniert nicht

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; 
    } 
} 

} 

Mein 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); 
     } 
    }); 
} 

} 

Aber es funktioniert nicht, ich Fehler erhalten auf TextWatcher, Fehler : kann die Symbolklasse TextWatcher nicht finden, Ausführung fehlgeschlagen für Task ': appcompileDebugJavaWithJavac'. Kann mir jemand bitte helfen ..

Antwort

0

R.id.p1Name und R.id.textView in Ihrem Fragmente Layout

In Ihrem Fragmente in onActivityCreated(...) Verfahren erhält den Hinweis auf die EditText und stellen Sie die addTextChangedListener dort Unter der Annahme.

@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

Hallo, danke für die Antwort! Bei meinem fragment.java habe ich die Codes eingefügt und EditText Text hinzugefügt; Textansicht textv; Aber es gibt Fehler für TextWatcher (kann Symbol 'TextWatcher' nicht auflösen) –

+0

So jetzt funktioniert es.? – Nitesh

+0

Nein, das wird angezeigt FAILURE: Erstellung fehlgeschlagen mit einer Ausnahme. * Was schief gelaufen ist: Ausführung fehlgeschlagen für Task ': app: compileDebugJavaWithJavac'. > Kompilierung fehlgeschlagen; Weitere Informationen finden Sie in der Compilerfehlerausgabe. * Versuchen Sie: Führen Sie mit --stacktrace Option, um die Stack-Trace zu erhalten. Führen Sie die Option --info oder --debug aus, um mehr Protokollausgaben zu erhalten. BUILD FAILED –

Verwandte Themen