2016-03-28 20 views
0

Hemen hemen her şeyi denedim ama işe yaramıyor gibi görünmüyor, altta bulunan düğmeler için findviewById çözümünü alamıyorum. düğme bildirimleri aynı hatalara sahip ancak bunları doğru şekilde düzelttim, alt kısımdaki düğmeler aynı şekilde davranmıyor gibi görünüyor. Android'e yeni, Yardım?findviewbyid hatası çözümlenemiyor

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class ConnectFragment extends Fragment { 

public String sign = ""; 
public String total= ""; 
public Double tempDouble, tempDouble2; 

public ConnectFragment() { 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_connect, container, false); 

    return rootView; 

    // Buttons for Felony 
    Button button1 =(Button)rootView.findViewById(R.id.button1); 
    Button button2 =(Button)rootView.findViewById(R.id.button2); 
    Button button3 =(Button)rootView.findViewById(R.id.button3); 
    Button button4 =(Button)rootView.findViewById(R.id.button4); 
    Button button5 =(Button)rootView.findViewById(R.id.button5); 
    //Buttons for misdemeanors 
    Button button6 =(Button)rootView.findViewById(R.id.button7); 
    Button button7 =(Button)rootView.findViewById(R.id.button8); 
    Button button8 =(Button)rootView.findViewById(R.id.button6); 
    //Buttons for Infraction 
    Button button9 =(Button)rootView.findViewById(R.id.button9); 
    //clear, +, = 
    Button button10=(Button)rootView.findViewById(R.id.button10); 
    Button button11 =(Button)rootView.findViewById(R.id.button11); 
    Button button12 =(Button)rootView.findViewById(R.id.button12); 




    // button 1 event handler 
    button1.setOnClickListener(
      //button 1 interface 
      new Button.OnClickListener() 
      { 
       //Button 1 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("100 years"); 
       } 
      } 
    ); 
    // button 2 event handler 
    button2.setOnClickListener(
      //button 2 interface 
      new Button.OnClickListener() 
      { 
       //Button 2 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("25 years"); 
       } 
      } 
    ); 
    // button 3 event handler 
    button3.setOnClickListener(
      //button 3 interface 
      new Button.OnClickListener() 
      { 
       //Button 3 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("10 years"); 
       } 
      } 
    ); 
    // button 4 event handler 
    button4.setOnClickListener(
      //button 4 interface 
      new Button.OnClickListener() 
      { 
       //Button 4 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("5 years"); 
       } 
      } 
    ); 
    // button 5 event handler 
    button5.setOnClickListener(
      //button 5 interface 
      new Button.OnClickListener() 
      { 
       //Button 5 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("1 years"); 
       } 
      } 
    ); 
    // button 6 event handler 
    button6.setOnClickListener(
      //button 1 interface 
      new Button.OnClickListener() 
      { 
       //Button 6 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("1 years"); 
       } 
      } 
    ); 
    // button 7 event handler 
    button7.setOnClickListener(
      //button 7 interface 
      new Button.OnClickListener() 
      { 
       //Button 7 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("0.5 years"); 
       } 
      } 
    ); 
    // button 8 event handler 
    button8.setOnClickListener(
      //button 8 interface 
      new Button.OnClickListener() 
      { 
       //Button 8 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("0.25 years"); 
       } 
      } 
    ); 
    // button 9 event handler 
    button9.setOnClickListener(
      //button 9 interface 
      new Button.OnClickListener() 
      { 
       //Button 9 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.append("0.013 years"); 
       } 
      } 
    ); 
    // button 10 event handler 
    button10.setOnClickListener(
      //button 10 interface 
      new Button.OnClickListener() 
      { 
       //Button 10 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        output.setText(""); 
       } 
      } 
    ); 
    // button 12 event handler 
    button12.setOnClickListener(
      //button 12 interface 
      new Button.OnClickListener() 
      { 
       //Button 12 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        tempDouble = Double.parseDouble(output.getText().toString()); 
        output.setText(""); 
        sign = "+"; 
       } 
      } 
    ); 

    // button 11 event handler 
    button11.setOnClickListener(
      //button 11 interface 
      new Button.OnClickListener() 
      { 
       //Button 11 callback method 
       public void onClick(View v) 
       { 
        TextView output = (TextView)findViewById(R.id.editText); 
        tempDouble2 = Double.parseDouble(output.getText().toString()); 
        if (sign=="+") 
        { 
         output.setText(Double.toString(tempDouble+tempDouble2)); 
         sign=""; 
        } 
       } 
      } 
    ); 
} 
} 
} 

} 
+0

'return' ifadenizi' onCreateView() 'yönteminin sonuna taşıyın. –

+0

@MikeM. Hâlâ hata alıyorsunuz http://puu.sh/nWva6/b6cd23a672.png –

+0

Oh, bunlar. 'TextView's' Fragment'ın düzeninde olduğunu varsayarak, 'getView()' 'da findViewById()' yi çağırın. Yani, TextView çıkışı = (TextView) getView(). FindViewById (R.id.editText); '. Ya da rootView'nın finalini yapabilirsin, ve onu buna çağırabilirsin. Ayrıca, 'Button' ve' TextView' değişkenleri sınıf üyelerinizi oluşturmayı ve hepsini onCreateView() 'da başlatabilirsiniz. –

cevap

1

yöntemden findViewById sahip olmayan bir Fragment için yazıyoruz.

TextView output = (TextView) rootView.findViewById(R.id.edittext); 

Ayrıca yöntemin sonuna kadar return rootView deyimi taşıyın: Sen kullanmak gerekir.

+0

Bunu beğendiniz mi? http://puu.sh/nWwsn/da7feb15e9.png Yine de –

+0

numaralı hatayı alıyorum. Evet. Ayrıca getClick deyimini setClickHandlers'ınızdan sonra da ekleyin. Ve 'TextView' içerisine almak için de aynı yolu kullanın. – Abdullah

0

Gerçekten bir cevap değil ama çirkin görünen tüm bu boilerplate kodundan kurtulmanın daha iyi bir yolu, bağımlılık enjeksiyonunu kullanmaktır. Kullanımı basit ve kolay olan iyi bir çerçeve butterknife'dur. Kodunuz çok daha temiz olacak ve findById ve tüm bu tıklama etkinliklerine sahip olmazsınız. Bütün bunlar bufferknife tarafından ele alınmıştır.

İlgili konular