2016-11-13 40 views
0
i have developed an app , which uses the settings using Preference Activity and Action Title Bar . When i press the three dots-> settings button , then it displays not responding , can u help .  

清单文件的代码是在菜单文件夹在手机无菜单按钮,不能使用设置选项在Android应用

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="demoproject.swatygupta.com.demoproject_actionbar"> 
<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".Activity2_2PreferenceActivityScreen" /> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

XML文件

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:DemoProject_ActionBar="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context="demoproject.swatygupta.com.demoproject_actionbar.MainActivity"> 
<item 
    android:id="@+id/action_settings" 
    android:icon="@android:drawable/ic_menu_manage" 
    android:title="@string/action_settings" 
    DemoProject_ActionBar:showAsAction="never" /> 

我已经开发了一个应用程序,它使用首选活动和操作标题栏的设置。当我按三个点 - >设置按钮,然后它显示没有响应,你能帮助吗?

主要活动类请看下面,请发现如果任何错误是有在调用方法.-> public class MainActivity extends AppCompatActivity { @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(); } }); } @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) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { startActivity(new Intent(this, Activity2_2PreferenceActivityScreen.class)); return true; } return super.onOptionsItemSelected(item);} }

偏好屏幕活动代码 - >

public final class Activity2_2PreferenceActivityScreen extends PreferenceActivity { 
    public Activity2_2PreferenceActivityScreen() 
{ 
    super(); 
} // constructor() 

@Override 
protected void onCreate(final Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 

    // Camera preference 
    final ListPreference PreferenceofCamera = (ListPreference) findPreference("camera"); 

    setCameraPreferences(PreferenceofCamera); 

    PreferenceofCamera.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener(){ 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      setCameraPreferences(PreferenceofCamera); 
      return false; 
     } 
    }); 

    // JPEG size preference 
    final ListPreference PreferenceofSize = (ListPreference) findPreference("size"); 

    setSizePreferences(PreferenceofSize, PreferenceofCamera); 

    PreferenceofSize.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener(){ 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      setSizePreferences(PreferenceofSize, PreferenceofCamera); 
      return false; 
     } 
    }); 
} // onCreate(Bundle) 

private void setCameraPreferences(final ListPreference cameraPreference) 
{ 
    final int numberOfCameras = Camera.getNumberOfCameras(); 
    final CharSequence[] entries = new CharSequence[numberOfCameras]; 
    final CharSequence[] entryValues = new CharSequence[numberOfCameras]; 
    final Camera.CameraInfo Infoabtcamera = new Camera.CameraInfo(); 
    for (int cameraIndex = 0; cameraIndex < numberOfCameras; cameraIndex++) 
    { 
     Camera.getCameraInfo(cameraIndex, Infoabtcamera); 
     String cameraFacing; 
     switch (Infoabtcamera.facing) 
     { 
      case Camera.CameraInfo.CAMERA_FACING_BACK: 
       cameraFacing = "Back"; 
       break; 
      case Camera.CameraInfo.CAMERA_FACING_FRONT: 
       cameraFacing = "Front"; 
       break; 
      default: 
       cameraFacing = "unknown"; 
     } // switch 

     entries[cameraIndex] = "Camera " + cameraIndex + " " + cameraFacing; 
     entryValues[cameraIndex] = String.valueOf(cameraIndex); 
    } //for 

    cameraPreference.setEntries(entries); 
    cameraPreference.setEntryValues(entryValues); 

} // setCameraPreferences(ListPreference) 

private void setSizePreferences(final ListPreference sizePreference, 
           final ListPreference cameraPreference) 
{ 
    final String cameraPreferenceValue = cameraPreference.getValue(); 
    final int cameraIndex; 
    if (cameraPreferenceValue != null) 
    { 
     cameraIndex = Integer.parseInt(cameraPreferenceValue); 
    } // if 
    else 
    { 
     cameraIndex = 0; 
    } // else 
    final Camera camera = Camera.open(cameraIndex); 
    final Camera.Parameters params = camera.getParameters(); 
    camera.release(); 

    final List<Camera.Size> supportedPreviewSizes = params.getSupportedPreviewSizes(); 
    CharSequence[] entries = new CharSequence[supportedPreviewSizes.size()]; 
    CharSequence[] entryValues = new CharSequence[supportedPreviewSizes.size()]; 
    for (int previewSizeIndex = 0; previewSizeIndex < supportedPreviewSizes.size(); 
     previewSizeIndex++) 
    { 
     Camera.Size supportedPreviewSize = supportedPreviewSizes.get(previewSizeIndex); 
     entries[previewSizeIndex] = supportedPreviewSize.width + "x" 
       + supportedPreviewSize.height; 
     entryValues[previewSizeIndex] = String.valueOf(previewSizeIndex); 
    } // for 

    sizePreference.setEntries(entries); 
    sizePreference.setEntryValues(entryValues); 

}/setSizePreferenceData(ListPreference) 

}`

+0

是,添加工具栏(动作条)! – lionscribe

+0

@lionscribe怎么样?你能帮我吗 ?我需要在哪里修改代码?它做什么,它会在屏幕上创建菜单类型选项? –

+0

也将能够通过偏好活动/ –

回答

0

您可以随时使用工具栏如下图所示

哎将此代码放在您的布局文件。

<android.support.v7.widget.Toolbar 
    android:id="@+id/my_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:elevation="4dp" 
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

,并在你的java文件的代码应该是有

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 
    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); 
    setSupportActionBar(myToolbar); 
} 

专门这两行

Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); 
setSupportActionBar(myToolbar); 

,这将显示用户在右上角的软菜单按钮。

+0

公共类LauncherActivity_StreamCameraActivity延伸活动{........................................... .................................................. .........................保护无效onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); 的setContentView(R.layout.main); new LoadPreferences()。execute();} –

+0

这是我主要活动的一些部分 –

+0

嘿,请检查更新的答案,希望这可以帮助你 – AJay

相关问题