2017-02-01 11 views
0

2つのフラグメントと呼ばれるアクションを持つ小さなアプリケーションを作成しました。これは絶対にうまくいっていますが、すべてfindViewById(R.id.Example)と読みましたが、何か間違ったことがあります。 「R」のみが赤色になっています。しかし、何が間違っているのか分かりませんか?特にアプリケーションが正常に動作し、コンパイルでエラーが発生しない場合ここですべてのアクティビティでシンボル 'R'を解決できません

が主な活動です:

package silverbeach.meintieralter; 

import android.app.Fragment; 
import android.content.Context; 
import android.os.Bundle; 
import android.os.Vibrator; 
import android.support.annotation.Nullable; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.view.View.OnClickListener; 

import static android.content.Context.VIBRATOR_SERVICE; 


public class FragmentOne extends Fragment { 

    private TextView out; 
    private EditText alter; 
    private Spinner s; 
    private Button button; 
    private FloatingActionButton fab; 



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




    } 

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

     View layout = inflater.inflate(R.layout.fragment_one, null); 

     out = (TextView) layout.findViewById(R.id.out); 
     alter = (EditText) layout.findViewById(R.id.altereingabe); 
     s = (Spinner) layout.findViewById(R.id.spinner); 
     button = (Button) layout.findViewById(R.id.button); 
     fab = (FloatingActionButton) layout.findViewById(R.id.fab); 



     FloatingActionButton fab = (FloatingActionButton) layout.findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() 
     { 
             @Override 
             public void onClick(View v) { 




              String text = s.getSelectedItem().toString(); 
              int newage = 404; 
              double doublenewage = 4.04; 
              double doubleage; 
              int intage; 
              doubleage = Double.parseDouble(alter.getText().toString()); 
              intage = (int) doubleage; 

              switch (text) { 
               case "Katze": { 
                switch (intage) { 

                 default: 
                  Snackbar.make(v, "Leider schon tot.", Snackbar.LENGTH_LONG).show(); 
                  out.setText("Leider schon tot."); 
                  break; 


                } 
                if (intage <= 119) 
                 Snackbar.make(v, "Du bist eine " + Integer.toString(newage) + " Jahre alte Katze.", Snackbar.LENGTH_LONG).show(); 

                else { 
                 double deadagecat; 
                 deadagecat = intage * 0.283; 
                 long dc = Math.round(deadagecat); 
                 Snackbar.make(v, "Du bist höchstwahrscheinlich schon tot, aber theoretisch wärst du eine " + dc + "-Jährige Katze.", Snackbar.LENGTH_LONG).show(); 


                } 


               }break; 
               case "Pferd": { 
                doublenewage = intage/3.1; 
                long longpferdage = Math.round(doublenewage); 
                newage = (int) longpferdage; 

                if (newage < 31) 
                 Snackbar.make(v, "Du bist ein " + Integer.toString(newage) + " Jahre altes Pferd", Snackbar.LENGTH_LONG).show(); 

                else 
                 Snackbar.make(v, "Du bist höchstwahrscheinlich schon tot, aber theoretisch wärst du ein " + newage + "-Jähriges Pferd.", Snackbar.LENGTH_LONG).show(); 

               }break; 
               case "Hund": { 
                newage = intage/7; 
                if (newage < 15) 
                 Snackbar.make(v, "Du bist ein " + Integer.toString(newage) + " Jahre alter Hund.", Snackbar.LENGTH_LONG).show(); 

                else 
                 Snackbar.make(v, "Du bist höchstwahrscheinlich schon tot, aber theoretisch wärst du ein " + newage + "-Jähriger Hund.", Snackbar.LENGTH_LONG).show(); 


               }break; 
               case "Meerschweinchen": { 
                newage = intage/12; 
                if (newage < 8) 

                 //out.setText("Du bist ein " + Integer.toString(newage) + " Jahre altes Meerie."); 
                 Snackbar.make(v, "Du bist ein "+Integer.toString(newage)+" Jahre altes Meerie.", Snackbar.LENGTH_LONG).show(); 






                else{ 
                Snackbar.make(v, "Du bist höchstwahrscheinlich schon tot, aber theoretisch wärst du ein " + newage + "-Jähriges Meerie.", Snackbar.LENGTH_LONG).show();} 


               }break; 


              } 



             } 


            }); 
     // tvText1 = (TextView) layout.findViewById(R.id.tvFragmentOne); 





     return layout; 
    } 





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

     //tvText1.setText("Ok View 1 wurde geändert."); 

    } 
} 
+0

最高のupvoteを持つ回答を確認してください。たぶんそれはより良いurクエリを解決します。 –

答えて

2

あなたは、単に再構築して、プロジェクトをきれいに実行する必要があります。

package silverbeach.meintieralter; 

import android.app.Fragment; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v4.app.FragmentActivity; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

    private FragmentOne fragmentOne; 
    private FragmentTwo fragmentTwo; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 



     //Fragmente ankündigen 
     fragmentOne = (FragmentOne) Fragment.instantiate(this, FragmentOne.class.getName(),null); 
     fragmentTwo = (FragmentTwo) Fragment.instantiate(this, FragmentTwo.class.getName(),null); 


     //Fragment 1 wird STANDARTMÄSSIG eingeblendet und ausgeführt 
     FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
     fragmentTransaction.add(R.id.flFragmentContainer, fragmentOne); 
     fragmentTransaction.commit(); 



    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     switch (item.getItemId()){ 
      case R.id.action_one:{ 
       FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.flFragmentContainer, fragmentOne); 
       fragmentTransaction.commit(); 
       break; 
      } 
      case R.id.action_two:{ 
       FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.flFragmentContainer, fragmentTwo); 
       fragmentTransaction.commit(); 
       break; 
      } 
      default:{ 

      } 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

そして、ここでは、断片の一つです。これはIDE自体のビルドの問題です。それにビルドして、きれいにして、あなたは行く準備ができています。 希望これは私が同様の問題を抱えていたし、ここで私がやったことある

1

に役立ちます:Gradleのと

クリーンプロジェクトとの同期プロジェクト

**Clean Project and Sync Project with Gradle**

2

Rは、XMLファイルに基づいて生成されます。 Rが生成されないレイアウトでエラーが発生していないか確認してください。

関連する問題