小编erd*_*ter的帖子

以编程方式显示ImageView

当用户单击按钮时,如何使ImageView显示在屏幕中间?我已将图像放在res/drawable-folder中.

我一直在尝试使用下面的代码,但我不知道如何使ImageView出现:

 View v = new ImageView(getBaseContext());
 ImageView image; 
 image = new ImageView(v.getContext()); 
 image.setImageDrawable(v.getResources().getDrawable(R.drawable.gameover));
Run Code Online (Sandbox Code Playgroud)

谢谢!

android android-imageview

60
推荐指数
4
解决办法
14万
查看次数

Facebook身份验证没有登录按钮

我已经学习了一些Facebook API 3.0教程,包括Login/Logout和Publish To Feed示例.所以登录以这种方式工作:

  1. 应用程序打开,显示一个显示登录按钮的片段
  2. 用户单击登录,通过引用的FacebookSDK库(com.facebook.widget.LoginActivity)和使用会话提供的代码完成身份验证.
  3. 用户被重定向到下一个屏幕

我不想让用户以这种方式登录.我希望他们在没有任何登录/注册的情况下使用我的应用程序,然后如果他们点击Facebook特定功能,例如在Facebook上分享笔记,那么应用程序应该询问他们是否让Facebook使用他们的应用程序或其他东西,你知道通常的东西.如果没有这个,我会在publishFeedDialog()函数中得到一个nullpointer,因为session是null,因为没有登录.

所以我的问题是,如何通过"登录"按钮忽略SplashFragment,因此当用户点击我的应用程序中的Facebook功能时,不会显示带有登录按钮的新屏幕,而只显示用户使用的默认Facebook身份验证窗口至?

android facebook facebook-android-sdk

48
推荐指数
2
解决办法
4万
查看次数

Android - 如何从其他活动获得共享偏好?

在我的应用程序中有一个按钮(activity1).当用户点击它时我想在游戏中没有声音.我想我应该通过在按钮的onClick方法中使用activity1中的sharedpreferences来做到这一点:

SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("sound","1");
editor.commit();
Run Code Online (Sandbox Code Playgroud)

声音和游戏从另一个活动(activity2)开始.我需要在那里阅读set sharedpreferences,但我不知道该怎么做.

谢谢

编辑

我已经离开了这条线:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(Activity1.this);
Run Code Online (Sandbox Code Playgroud)

根据您在Activity2.class中的帮助,我读了这样的首选项:

SharedPreferences myPrefs = getSharedPreferences("Activity1", MODE_PRIVATE);  //Activity1.class
String ifsound = myPrefs.getString("sound","");

 if (ifsound.equals("1"))
 {
     Toast.makeText(Activity1.this, "1", Toast.LENGTH_LONG).show();
 }
 else
 {
      Toast.makeText(Activity1.this, "0", Toast.LENGTH_LONG).show();
 }
Run Code Online (Sandbox Code Playgroud)
  1. 在Activity1.class中,我单击按钮将"声音"设置为"1".
  2. 我点击另一个打开Activity2.class的btn,我总是在Toast msg中得到"0".

android sharedpreferences

35
推荐指数
3
解决办法
7万
查看次数

Android Checkbox首选项

我找不到关于复选框偏好的任何教程.我可以使用listpreference,但我不能使用checkbox首选项.现在,我希望如果用户在checbox上设置,一个toast msg说"true",如果他将其设置为关闭,那么toast msg会说"false".到目前为止我有这个:

的preferences.xml:

 <CheckBoxPreference
          android:title="Show Call UI"
          android:defaultValue="true"
          android:summary="Show Call Interface when clicking call button"
          android:key="checkboxPref" />
Run Code Online (Sandbox Code Playgroud)

EditPreferences.java:

public class EditPreferences extends PreferenceActivity {

    String listPreference;
    boolean checkboxPreference;

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

    public void onStart(Intent intent, int startId) {
        getPrefs();
    }

    private void getPrefs() {
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext());
        listPreference = prefs.getString("listPref", "nr1");
        checkboxPreference = prefs.getBoolean("checkboxPref", true);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:解决方案感谢David Caunt:

checkboxPreference.
    setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

    public boolean onPreferenceChange(Preference preference, Object newValue) {
        if …
Run Code Online (Sandbox Code Playgroud)

android preference

27
推荐指数
2
解决办法
4万
查看次数

运行期间更改选项菜单 - invalidateOptionsMenu()

我正在创建一个菜单,其中一个项目用于锁定一个对象.单击此项目时,应使用按钮重新创建菜单以解锁项目.我为此创建了两个菜单.这工作正常.我读到在Android版本> = 11时,在显示菜单时不再调用onPrepareOptionsMenu,我必须调用invalidateOptionsMenu().所以我将构建目标(在Manifest和属性中)更改为11并在AVD 4.0.3上运行应用程序.该程序仍然工作正常,但我认为它应该不再,我应该检查

if (Build.VERSION.SDK_INT >= 11)
{
  invalidateOptionsMenu();
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

public class MainActivity3 extends Activity{

    boolean locked;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        locked = false;
    }

      @Override
      public boolean onCreateOptionsMenu(Menu menu){
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.changing_menu1, menu);

            return true;
        }

        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {

            menu.clear();
            MenuInflater inflater = getMenuInflater();

            if (locked) {
                inflater.inflate(R.menu.changing_menu2, menu);
            }
            else {
                inflater.inflate(R.menu.changing_menu1, menu);
            }

        return super.onPrepareOptionsMenu(menu);
        }

        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {

          case R.id.Menu1: …
Run Code Online (Sandbox Code Playgroud)

android menu

23
推荐指数
1
解决办法
3万
查看次数

Android - 如何将警报设置为特定日期

我已经看过很多教程,现在已经尝试了2个小时,虽然还有一些问题.我现在非常紧张:)我想设置一个警报,例如到16:25关闭,但没有任何反应.我有这个代码:

   Calendar cur_cal = new GregorianCalendar();
    cur_cal.setTimeInMillis(System.currentTimeMillis());

    Calendar cal = new GregorianCalendar();
    cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
    cal.set(Calendar.HOUR_OF_DAY, 16);
    cal.set(Calendar.MINUTE, 25);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);

    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

 cal.set(Calendar.AM_PM, cur_cal.get(Calendar.AM_PM));
    cal.set(Calendar.HOUR, 4);
Run Code Online (Sandbox Code Playgroud)

我的最终目标是让它成为一个重复的警报,例如它应该在设定的时间每天都去.

更新01.17.2011.还是行不通.我有这个代码:

           Calendar cal = Calendar.getInstance();
            cal.set(Calendar.YEAR, 2011);
            cal.set(Calendar.MONTH, Calendar.JANUARY); 
            cal.set(Calendar.DAY_OF_MONTH, 17);
            cal.set(Calendar.HOUR_OF_DAY, 16);
            cal.set(Calendar.MINUTE, 58);
         cal.set(Calendar.SECOND, 0);
          cal.set(Calendar.MILLISECOND, 0);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

 cal.set(Calendar.HOUR, 4);
 cal.set(Calendar.AM_PM, Calendar.PM);
Run Code Online (Sandbox Code Playgroud)

还有这个:

cal.set(Calendar.HOUR_OF_DAY, 4 );
            cal.set(Calendar.AM_PM, Calendar.PM);
Run Code Online (Sandbox Code Playgroud)

android calendar alarm

17
推荐指数
3
解决办法
4万
查看次数

Php mysql创建数据库(如果不存在)

我想创建一个数据库.为什么不使用此代码创建数据库?

$dbname = 'regulations_db';
    $con = mysql_connect("localhost","root","pass");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }
if (mysql_num_rows(mysql_query("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '". $dbname ."'"))) {
        echo "Database $dbname already exists.";
    }
    else {
        mysql_query("CREATE DATABASE '". $dbname ."'",$con);
        echo "Database $dbname created.";
    }
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我认为第一个是最好的做法:

if (mysql_query("CREATE DATABASE IF NOT EXISTS regulations_db",$con))
    {
        echo "Database created";
    }
    else
    {
        echo "Error creating database: " . mysql_error();
    }
Run Code Online (Sandbox Code Playgroud)

php mysql

16
推荐指数
3
解决办法
5万
查看次数

在super.onBackPressed()上的onSaveInstanceState之后无法执行此操作

我在用户按下退出应用程序时显示插页式广告:

mInterstitialAd.setAdListener(new AdListener() {
   @Override
   public void onAdClosed() {
        onBackPressed(); //line 98
   }
});

requestNewInterstitial();

private void requestNewInterstitial() {
   AdRequest adRequest = new AdRequest.Builder().build();
   mInterstitialAd.loadAd(adRequest);
}

@Override
public void onBackPressed() {
   if (mInterstitialAd.isLoaded()) {
      mInterstitialAd.show();
   } else {
      super.onBackPressed(); //line 410
   }
}
Run Code Online (Sandbox Code Playgroud)

这是我从用户那里收到的崩溃报告:

java.lang.RuntimeException: Unable to pause activity {com.myapp/com.google.android.gms.ads.AdActivity}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3088)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3043)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3021)
at android.app.ActivityThread.access$1000(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1253)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5045)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at …
Run Code Online (Sandbox Code Playgroud)

android onbackpressed

15
推荐指数
2
解决办法
9496
查看次数

Android中的ListView的setBackgroundDrawable

如何将drawable设置为类中列表视图的背景?

if (array1.size() < 8)
{
    lv1.setBackgroundDrawable(R.drawable.bgimghs2b);
}
Run Code Online (Sandbox Code Playgroud)

是不合适的.

android listview

14
推荐指数
4
解决办法
3万
查看次数

Textcolor选择器无法正常工作

我之前做过这个.我复制粘贴了.我从网上复制粘贴了许多其他的例子.我根本无法使textcolor选择器工作.它将默认颜色设置为textview,但如果单击textview,它将不会更改.后台的settings_selector工作正常.

这是布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/settings_selector"
    android:clickable="true"
    android:id="@+id/llRecentChanges"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp">
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/llRecentChanges2"
        android:layout_weight="1"
        android:layout_gravity="center_vertical">
    <TextView
        android:id="@+id/tvAbout"
        android:text="@string/settings_recentchanges"
        android:gravity="center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16dp"
        android:textColor="@drawable/settings_selector_txt" >
    </TextView>
    <TextView
        android:id="@+id/tvAbout2"
        android:text="@string/settings_recentchanges2"
        android:gravity="center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@drawable/settings_selector_txt"
        android:textSize="10dp">
    </TextView>
    </LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是settings_selector_txt xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" 
          android:state_pressed="false" 
          android:color="#FFFFFF" />
    <item android:state_focused="true" 
          android:state_pressed="true"
          android:color="#ffa800" />
    <item android:state_focused="false" 
          android:state_pressed="true"
          android:color="#ffa800" />
    <item android:color="#FFFFFF" />
</selector>
Run Code Online (Sandbox Code Playgroud)

或这个

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="#444"/>
    <item android:state_focused="true" android:color="#444"/> …
Run Code Online (Sandbox Code Playgroud)

android textview

14
推荐指数
2
解决办法
1万
查看次数