Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';无法在屏幕上显示设置选项_Java_Android_Android Studio_Sharedpreferences_Preferences - Fatal编程技术网

Java Can';无法在屏幕上显示设置选项

Java Can';无法在屏幕上显示设置选项,java,android,android-studio,sharedpreferences,preferences,Java,Android,Android Studio,Sharedpreferences,Preferences,编辑在底部添加了MyActivity.java(即主活动) EDIT2在MyActivity.java中添加了行(这解决了问题) 我已设置了首选项,但无法访问它们。无论我在xml中选择了什么style,也不管我在Android Studio(AS)1.1.0中选择了什么虚拟设备或样式,屏幕都缺少下面显示的3个点。甚至包括LightActionBar和DarkActionBar在内的下拉样式也没有显示点 在xml中,我尝试了,这最终在昨晚的一个小应用程序上成功(遇到了同样的问题),而且,对于父应

编辑在底部添加了
MyActivity.java
(即主活动) EDIT2
MyActivity.java
中添加了行(这解决了问题)

我已设置了首选项,但无法访问它们。无论我在xml中选择了什么
style
,也不管我在Android Studio(AS)1.1.0中选择了什么虚拟设备或样式,屏幕都缺少下面显示的3个点。甚至包括
LightActionBar
DarkActionBar
在内的下拉样式也没有显示点

在xml中,我尝试了
,这最终在昨晚的一个小应用程序上成功(遇到了同样的问题),而且,对于
父应用程序,我尝试了
Base.Theme.AppCompat.Light.DarkActionBar
和其他东西

我不太在乎我是否看到了3个点;只要显示首选项屏幕即可

我还尝试了
从不
ifroom
,以及
始终
,用于
showAsAction

<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=".MyActivity">

<item android:id="@+id/itemFocus"
      android:title="@string/focusAtClue"
      android:orderInCategory="200"
      app:showAsAction="never"/>
下面是
设置片段.java

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.util.Log;

public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
  }
  @Override
  public void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  }
  @Override
  public void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
  }
  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
    if (key.equalsIgnoreCase("pie_type")){
      Log.w("Settings", sharedPref.getString(key, ""));
    }
  }
}
    import android.app.Activity;
    import android.os.Bundle;

public class SettingsActivity extends Activity {
  public static final String SETTINGS = "com.whatever.kakurocombosbuildvariants.settings";
  public static final String FIRST_USE = "com.whateverkakurocombosbuildvariants.firstUse";

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

}
public boolean onOptionsItemSelected(MenuItem item)
  {
    switch (item.getItemId()) {
      case R.id.menu_settings:
        Intent intent = new Intent(this, SettingsActivity.class);
        startActivity(intent);

        return true;

      default:
        return super.onOptionsItemSelected(item);
    }
  }
设置活动.java

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.util.Log;

public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
  }
  @Override
  public void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  }
  @Override
  public void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
  }
  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
    if (key.equalsIgnoreCase("pie_type")){
      Log.w("Settings", sharedPref.getString(key, ""));
    }
  }
}
    import android.app.Activity;
    import android.os.Bundle;

public class SettingsActivity extends Activity {
  public static final String SETTINGS = "com.whatever.kakurocombosbuildvariants.settings";
  public static final String FIRST_USE = "com.whateverkakurocombosbuildvariants.firstUse";

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

}
public boolean onOptionsItemSelected(MenuItem item)
  {
    switch (item.getItemId()) {
      case R.id.menu_settings:
        Intent intent = new Intent(this, SettingsActivity.class);
        startActivity(intent);

        return true;

      default:
        return super.onOptionsItemSelected(item);
    }
  }
这里是在
MyActivity.java
中调用
SettingsActivity
的地方:

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.util.Log;

public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
  }
  @Override
  public void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  }
  @Override
  public void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
  }
  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
    if (key.equalsIgnoreCase("pie_type")){
      Log.w("Settings", sharedPref.getString(key, ""));
    }
  }
}
    import android.app.Activity;
    import android.os.Bundle;

public class SettingsActivity extends Activity {
  public static final String SETTINGS = "com.whatever.kakurocombosbuildvariants.settings";
  public static final String FIRST_USE = "com.whateverkakurocombosbuildvariants.firstUse";

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

}
public boolean onOptionsItemSelected(MenuItem item)
  {
    switch (item.getItemId()) {
      case R.id.menu_settings:
        Intent intent = new Intent(this, SettingsActivity.class);
        startActivity(intent);

        return true;

      default:
        return super.onOptionsItemSelected(item);
    }
  }
MyActivity.java
(主活动;删除300行无关代码)

///////////////////////编辑2////////////////////////////

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

///////////////////////EDIT2/////p>主要问题似乎是您并没有夸大菜单xml

  @Override public boolean onCreateOptionsMenu(Menu menu)
  { getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }
public class MyActivity extends ActionBarActivity{

    //...........

    @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;
    }

    //............
}
尝试将
ActionBarActivity
用于您的
main活动
,并添加
onCreateOptions菜单()
,以膨胀菜单xml

public class MyActivity extends ActionBarActivity{

    //...........

    @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 onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.<your_menu>, menu);
    //...
}
@覆盖
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(右菜单,菜单);
//...
}

尝试使
设置活动
扩展
AppCompativity
ActionBarActivity
@DanielNugent--
公共类设置活动扩展AppCompativity
出现错误--无法解决
AppCompativity
公共类设置活动扩展ActionBarActivity
不存在错误显示点。等等,这是图片中的
设置活动
还是
main活动
?您的问题是否无法从
main活动
设置活动
?啊,好的。您可以添加主活动代码吗?这就是问题所在。啊,是的。无论如何,设置对话框上没有理由有一个操作栏。通常的做法是在设置屏幕上使用
首选项活动
。嘿。。。我只是注意到了这一点,并将其添加到代码中。谢谢你叫醒我@当然,没问题!我从一开始就有一种感觉,这就是问题所在@丹尼尔——我想我是个傻瓜。我把它写下来并突出显示以添加代码,但每次检查时都会跳过它。再次感谢。我现在有一个不同的问题,但至少我有办法看到prefs。你得到了答案,但另一个人,他整个下午都在陪我,首先得到了答案。谢谢你的回复。