2017-07-25 202 views
0

我不能得到的菜單項工作,我已經創建了其他應用程序之前,但由於某種原因,它只是不露面:菜單項沒有顯示出來

MainActivity.java

package ie.example.artur.adminapp; 

    import android.content.Intent; 
    import android.os.AsyncTask; 
    import android.os.Bundle; 
    import android.support.design.widget.FloatingActionButton; 
    import android.support.design.widget.Snackbar; 
    import android.support.v7.app.AppCompatActivity; 
    import android.support.v7.widget.Toolbar; 
    import android.view.View; 
    import android.view.Menu; 
    import android.view.MenuItem; 
    import android.view.ViewConfiguration; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    import java.lang.reflect.Field; 
    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.Statement; 

    public class MainActivity extends AppCompatActivity { 


     EditText editTextName,editTextEmail,editTextPassword; 
     TextView textView; 
     private static final String DB_URL = "jdbc:mysql://10.3.2.51/socialmedia_website"; 
     private static final String USER = "zzz"; 
     private static final String PASS = "zzz"; 



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

      textView = (TextView) findViewById(R.id.textView); 
      editTextName = (EditText) findViewById(R.id.editTextName); 
      editTextEmail = (EditText) findViewById(R.id.editTextEmail); 
      editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
    ////  try { 
    ////   ViewConfiguration config = ViewConfiguration.get(this); 
    ////   Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); 
    ////   if (menuKeyField != null) { 
    ////    menuKeyField.setAccessible(true); 
    ////    menuKeyField.setBoolean(config, false); 
    ////   } 
    //  } catch (Exception ignored) { 
    //  } 


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

     public void btnConn(View view) { 
      Send objSend = new Send(); 
      objSend.execute(""); 


     } 







private class Send extends AsyncTask<String, String, String> 

    { 
     String msg = ""; 
     String name = editTextName.getText().toString(); 
     String email = editTextEmail.getText().toString(); 
     String password = editTextPassword.getText().toString(); 

     @Override 
     protected void onPreExecute() { 
      textView.setText("Please Wait Inserting Data"); 
     } 

     @Override 
     protected String doInBackground(String... strings) { 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); 
       if (conn == null) { 
        msg = "Connection goes wrong"; 
       } else { 
        String query = "Insert INTO users (name,email,password) VALUES('" + name+"','"+email+"','"+password+"')"; 
        Statement stmt = conn.createStatement(); 
        stmt.executeUpdate(query); 
        msg = "Inserting Successful!!"; 

       } 

       conn.close(); 

     } 

     catch(
     Exception e 
     ) 

     { 
      msg = "Connection goes Wrong"; 
      e.printStackTrace(); 

     } 

     return msg; 


    } 



@Override 
    protected void onPostExecute(String msg) {textView.setText(msg);} 



    } 


    @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. 
     { 
      switch (item.getItemId()) 
      { 
       case R.id.action_settings : startActivity (new Intent(this, ShowUsers.class)); 
        break; 
      } 
      return super.onOptionsItemSelected(item); 
     }} 

} 

menu_main.xml:

<menu 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" 
     tools:context="ie.example.artur.adminapp.MainActivity"> 



     <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:orderInCategory="100" 
      app:showAsAction="ifRoom|withText"/> 

    </menu> 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="ie.example.artur.adminapp"> 

    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

我曾嘗試以下鏈接來解決我的問題,但他們不幫助:

How to force use of overflow menu on devices with menu button

Menu Items are not showing on Action Bar

android - menu item not showing in action bar

回答

0

在您的活動添加這個..

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 
+0

謝謝:),我會這個權利,我必須不小心刪除它,因爲我之前在那裏有 – Lucy

+0

Wel-Come Lucy ... –

0

我不知道羯羊您發佈的MainActivity.java代碼是完整的,反正通過什麼看到的是缺失的膨脹

凡menu_main.xml被包含到正確創建菜單裏面的文件夾
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

res文件夾。