2017-08-07 5 views
0

Android用の以下のコードは、「Hello World!」という文を変更することになっています。今日は "今日は8月7日"と言い、 "ERROR"と言います。しかし、私が得るのは、 "Hello World!"です。奇妙なことは、完全に新しいプログラムでコードをまったく同じ方法で実行しましたが、FirstFragmentクラスの内部でCheckDateクラスをネストしないことです。私はFirstFragmentクラスを削除するだけでこれを解決しようとしましたが、アプリケーションのサイドバーアプリケーションを作成するために使用したMainActivityクラスでエラーが発生します。サイドバーを維持し、アプリがテキスト「Hello World!」を変更できるようにするためにできることはありますか?それは何を言いたいのですか?私のアプリケーションは、別のクラスの中にネストされているときにテキストを変更しませんか?

FIRST FRAGMENT

package com.example.gcsd.gcsdapp; 

import android.app.Fragment; 
import android.icu.util.Calendar; 
import android.icu.util.GregorianCalendar; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v7.app.AppCompatActivity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.support.v4.app.FragmentManager; 
import android.widget.TextView; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 
import android.icu.util.GregorianCalendar; 
import android.icu.util.Calendar; 

public class FirstFragment extends Fragment { 

View myView; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, Bundle savedInstanceState) { 
myView = inflater.inflate(R.layout.home, container, false); 
return myView; 

} 

public class CheckDate extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    TextView textView = (TextView) findViewById(R.id.textView); 

    GregorianCalendar cal = new GregorianCalendar(); 

    System.out.println(cal.get(Calendar.DATE)); //prints 4 
    System.out.println(cal.get(Calendar.MONTH) + 1); //this starts at 0, not 1. Therefore, add 1 
    System.out.println(cal.get(Calendar.YEAR)); //2017 

    if ((cal.get(Calendar.DAY_OF_MONTH) + 0 == 4) && (cal.get(Calendar.MONTH) + 1 == 8)) { //Is it the fourth of the month of 2017? 
     System.out.println("TODAY IS AUGUST FOURTH"); 
     textView.setText("TODAY IS AUGUST FOURTH"); 
    } else { 
     System.out.println("ERROR"); 
     textView.setText("ERROR"); 
    } 

} 
} 
} 

最初のフラグメント$ CheckDate.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.gcsd.gcsdapp.FirstFragment$CheckDate"> 

<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/textView" 
android:text="Hello World!" 
android:layout_centerVertical="true" 
android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

主な活動

package com.example.gcsd.gcsdapp; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v4.app.FragmentManager; 
import android.view.View; 
import android.support.design.widget.NavigationView; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.support.v4.app.FragmentManager; 

public class MainActivity extends AppCompatActivity 
implements NavigationView.OnNavigationItemSelectedListener { 

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

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Snackbar.make(view, "Replace with your own action", 
Snackbar.LENGTH_LONG) 
       .setAction("Action", null).show(); 
    } 
}); 

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
     this, drawer, toolbar, R.string.navigation_drawer_open, 
R.string.navigation_drawer_close); 
drawer.setDrawerListener(toggle); 
toggle.syncState(); 

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
navigationView.setNavigationItemSelectedListener(this); 
} 

@Override 
public void onBackPressed() { 
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
if (drawer.isDrawerOpen(GravityCompat.START)) { 
    drawer.closeDrawer(GravityCompat.START); 
} else { 
    super.onBackPressed(); 
} 
} 

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

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Handle action bar item clicks here. The action bar will 
// automatically handle clicks on the Home/Up button, so long 
// as you specify a parent activity in AndroidManifest.xml. 
int id = item.getItemId(); 

//noinspection SimplifiableIfStatement 
if (id == R.id.action_settings) { 
    return true; 
} 

return super.onOptionsItemSelected(item); 
} 

@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
// Handle navigation view item clicks here. 
int id = item.getItemId(); 
android.app.FragmentManager fragmentManager = getFragmentManager(); 

if (id == R.id.nav_home) { 
    fragmentManager.beginTransaction() 
      .replace(R.id.content_frame 
        , new FirstFragment()) 
      .commit(); 
} else if (id == R.id.nav_events) { 
    fragmentManager.beginTransaction() 
      .replace(R.id.content_frame 
        , new SecondFragment()) 
      .commit(); 
} else if (id == R.id.nav_schooltool) { 
    fragmentManager.beginTransaction() 
      .replace(R.id.content_frame 
        , new ThirdFragment()) 
      .commit(); 
} else if (id == R.id.nav_lessonreminders) { 
    fragmentManager.beginTransaction() 
      .replace(R.id.content_frame 
        , new FourthFragment()) 
      .commit(); 
} else if (id == R.id.nav_share) { 

} else if (id == R.id.nav_send) { 

} 

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
drawer.closeDrawer(GravityCompat.START); 
return true; 
} 
} 
+0

であなたの最初のフラグメントのクラスを交換して - 私はより多くの段落を作ると思い、質問を強調し、...それはより多くの人々を魅了し、あなたはより速く/良い答えを得るかもしれません – xhudik

答えて

0

質問は罰金、しかし読みやや困難であるコードの下

package com.example.gcsd.gcsdapp; 

    import android.app.Fragment; 
    import android.icu.util.Calendar; 
    import android.icu.util.GregorianCalendar; 
    import android.os.Bundle; 
    import android.support.annotation.Nullable; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.support.v4.app.FragmentManager; 
    import android.widget.TextView; 
    import android.os.Bundle; 
    import android.widget.TextView; 
    import android.icu.util.GregorianCalendar; 
    import android.icu.util.Calendar; 

    public class FirstFragment extends Fragment { 

    View myView; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
    container, Bundle savedInstanceState) { 
    myView = inflater.inflate(R.layout.checkdate, container, false); 

     TextView textView = (TextView) myView.findViewById(R.id.textView); 

     GregorianCalendar cal = new GregorianCalendar(); 

     System.out.println(cal.get(Calendar.DATE)); //prints 4 
     System.out.println(cal.get(Calendar.MONTH) + 1); //this starts at 0, not 1. Therefore, add 1 
     System.out.println(cal.get(Calendar.YEAR)); //2017 

     if ((cal.get(Calendar.DAY_OF_MONTH) + 0 == 4) && (cal.get(Calendar.MONTH) + 1 == 8)) { //Is it the fourth of the month of 2017? 
      System.out.println("TODAY IS AUGUST FOURTH"); 
      textView.setText("TODAY IS AUGUST FOURTH"); 
     } else { 
      System.out.println("ERROR"); 
      textView.setText("ERROR"); 
     } 
    return myView; 

    } 
    } 
関連する問題