0
因此,我被分配使用隱式意圖打開帶有「股票代碼」的瀏覽器。股票代碼只是網址的擴展,如下面的代碼所示。當我點擊一個按鈕輸入網址時,股票代碼將作爲共享首選項存儲並添加到選項菜單中。我可以訪問選項菜單並從菜單中打開一個URL,問題是如果我經常點擊菜單按鈕,它會添加menuItem,即使它已經存在。我嘗試使用包含方法,但它從來沒有出現錯誤,所以我必須錯誤地存儲首選項?任何幫助將是偉大的!使用選項菜單的共享首選項
package com.example.sharedpreferences;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
EditText edit;
String StockTicker;
SharedPreferences.Editor editor;
public static String MY_PREFS = "edu.college.ece3233.my_prefs";
SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit= (EditText)findViewById(R.id.MyText);
prefs = getSharedPreferences(MY_PREFS, Activity.MODE_PRIVATE);
editor = prefs.edit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
menu.clear();
return true;
}
public void SharedPreferenceClick(View view){
StockTicker=edit.getText().toString();
Intent intent =new Intent(Intent.ACTION_VIEW,Uri.parse("http://finance.yahoo.com/q?s="+ StockTicker));
startActivity(intent);
editor.putString("StockTick", StockTicker);
editor.commit();
}
@Override
public boolean onPrepareOptionsMenu(Menu menu){
if(!prefs.contains(prefs.getString("StockTick", "")))
menu.add(prefs.getString("StockTick", ""));
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent2 =new Intent(Intent.ACTION_VIEW,Uri.parse("http://finance.yahoo.com/q?s="+ item.toString()));
startActivity(intent2);
return super.onOptionsItemSelected(item);
}
}
我會這樣做,但它是一個專注於共享首選項的學校作業。 – user1819301