Настройки Android onclick
В моем preferences.xml у меня есть элемент предпочтения, подобный этому:
<Preference android:title="About" />
Я хочу назначить событие onClick
, поэтому, если пользователь нажмет на него, я смогу открыть новый Intent
или браузер. Я пытался сделать это, как с кнопками, но это не работает.
Ответы
Ответ 1
Бадр,
Вам нужно установить android:key
для элемента, тогда в вашем коде вы можете сделать...
Предполагая, что вы используете следующее в своем XML:
<Preference android:title="About" android:key="myKey"></Preference>
Затем вы можете сделать следующее в своем коде:
Preference myPref = (Preference) findPreference("myKey");
myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
//open browser or intent here
return true;
}
});
Ответ 2
запустить веб-сайт:
<PreferenceScreen android:title="website">
<intent
android:action="android.intent.action.VIEW"
android:data="http://www.example.com"
/>
</PreferenceScreen>
для запуска определенной операции:
<PreferenceScreen android:title="something">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.example.foo"
android:targetClass="com.example.foo.SomeActivity"
/>
</PreferenceScreen>
вы также можете использовать "android: mimetype" , чтобы установить тип mimetype.
Ответ 3
Вам нужно использовать событие onPreferenceTreeClick.
Например, см. http://www.netmite.com/android/mydroid/donut/packages/apps/Phone/src/com/android/phone/CdmaOptions.java
Ответ 4
Ответ на ответ @jason gilbert
Я нахожусь на targetSdkVersion 25, и его ответ не сработал, мне пришлось обернуть тэг намерения тегом Preference. Пример:
<PreferenceScreen android:title="something">
<Preference title="Title">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.example.foo"
android:targetClass="com.example.foo.SomeActivity"
/>
</Preference>
</PreferenceScreen>