Доступ из фрагмента к Preference

Ответить
AlexVinn
Сообщения: 81
Зарегистрирован: 04 апр 2014, 04:56

Доступ из фрагмента к Preference

Сообщение AlexVinn » 07 май 2014, 23:09

Хочу заполнить из фрагмента данные из Preference.
Ругается в строке 39.
Подчеркивает - MODE_PRIVATE
Пишет - MODE_PRIVATE cannot be resolved to a variable

Помогите разобраться.

Tab1.java
[syntax=java5]package com.mysite.myapp;

import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Tab1 extends Fragment {

public void SetTabView() {

}

SharedPreferences sPref;
final String sPrefFileName = "mydata.dat";



String[] tabView = { "Иван", "Марья", "Петр", "Антон", "Даша", "Борис",
"Костя", "Игорь", "Анна", "Денис", "Андрей" };
String[] tabLink = { "google.com", "адресМарья", "адресПетр", "адресАнтон",
"адресДаша", "адресБорис", "адресКостя", "адресИгорь", "адресАнна",
"адресДенис", "адресАндрей" };

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

sPref = getSharedPreferences(sPrefFileName, MODE_PRIVATE);
Editor ed = sPref.edit();
ed.apply();

View rootView = inflater.inflate(R.layout.tab1, container, false);

// находим список 1
ListView lvMain = (ListView) rootView.findViewById(R.id.lvMain);

// создаем адаптер
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
R.layout.my_list_item, tabView);

// присваиваем адаптер списку
lvMain.setAdapter(adapter);

lvMain.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Log.d("myLogs", "itemClick: position = " + position
+ ", namesAdr = " + tabLink[position]);

String temp = "http://" + tabLink[position];
Uri address = Uri.parse(temp);
Intent openlink = new Intent(Intent.ACTION_VIEW, address);
startActivity(openlink);
}
});

return rootView;
}

}
[/syntax]


MainActivity.java
[syntax=java5]package com.mysite.myapp;

import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements
ActionBar.TabListener {

TabsPagerAdapter mSectionsPagerAdapter;
SharedPreferences sPref;

final String sPrefFileName = "mydata.dat";
ViewPager mViewPager;

@Override
protected void onCreate(Bundle savedInstanceState) { // /////////////////////////////
// ON CREATE
// /////////////////////////////////
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// check if SharedPref present

sPref = getSharedPreferences(sPrefFileName, MODE_PRIVATE);
Editor ed = sPref.edit();
ed.apply();

if (!testSPref()){
Toast.makeText(this, "Shared Preference NOT FOUND",
Toast.LENGTH_LONG).show();
MakeNewSharedPreference();
}
else
Toast.makeText(this, "Shared Preference Ok", Toast.LENGTH_LONG)
.show();

// Set up the action bar.
final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

mSectionsPagerAdapter = new TabsPagerAdapter(
getSupportFragmentManager());

// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);

// When swiping between different sections, select the corresponding
// tab. We can also use ActionBar.Tab#select() to do this if we have
// a reference to the Tab.
mViewPager
.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});

// For each of the sections in the app, add a tab to the action bar.
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
// Create a tab with text corresponding to the page title defined by
// the adapter. Also specify this Activity object, which implements
// the TabListener interface, as the callback (listener) for when
// this tab is selected.
actionBar.addTab(actionBar.newTab()
.setText(mSectionsPagerAdapter.getPageTitle(i))
.setTabListener(this));
}

}// ///////////////////////////////////////////////////////////////////////////////////////
// ON CREATE END ///////////////////////////

boolean testSPref() { // проверяем или не первый запуск и есть данные в
// mydata.dat
sPref = getSharedPreferences(sPrefFileName, MODE_PRIVATE);
return sPref.contains("id");
}

void MakeNewSharedPreference() { // СОЗДАНИЕ НОВОГО ПРЕФЕРЕНС TEMPORARY


sPref = getSharedPreferences(sPrefFileName, MODE_PRIVATE);
Editor ed = sPref.edit();

ed.putString("id", "1");
ed.putString("nametab1", "tab1");
ed.putString("nametab2", "tab2");
ed.putString("nametab3", "tab3");
ed.putString("nametab4", "Contacts");

ed.putString("Viewtab1Item1", "Tab1 Link google.com");
ed.putString("Viewtab1Item2", "Tab1 Link 2av.com.ua");
ed.putString("Viewtab1Item3", "Tab1 Link yandex.com");
ed.putString("Viewtab1Item4", "Tab1 Link yahoo.com");

ed.putString("Linktab1Item1", "google.com");
ed.putString("Linktab1Item2", "2av.com.ua");
ed.putString("Linktab1Item3", "yandex.com");
ed.putString("Linktab1Item4", "yahoo.com");

ed.putString("Viewtab2Item1", "Tab1 Link google.com");
ed.putString("Viewtab2Item2", "Tab1 Link 2av.com.ua");
ed.putString("Viewtab2Item3", "Tab1 Link yandex.com");
ed.putString("Viewtab2Item4", "Tab1 Link yahoo.com");

ed.putString("Linktab2Item1", "google.com");
ed.putString("Linktab2Item2", "2av.com.ua");
ed.putString("Linktab2Item3", "yandex.com");
ed.putString("Linktab2Item4", "yahoo.com");

ed.putString("Viewtab3Item1", "Tab1 Link google.com");
ed.putString("Viewtab3Item2", "Tab1 Link 2av.com.ua");
ed.putString("Viewtab3Item3", "Tab1 Link yandex.com");
ed.putString("Viewtab3Item4", "Tab1 Link yahoo.com");

ed.putString("Linktab3Item1", "google.com");
ed.putString("Linktab3Item2", "2av.com.ua");
ed.putString("Linktab3Item3", "yandex.com");
ed.putString("Linktab3Item4", "yahoo.com");

ed.putString("Viewtab4Item1", "Tab1 Link google.com");
ed.putString("Viewtab4Item2", "Tab1 Link 2av.com.ua");
ed.putString("Viewtab4Item3", "Tab1 Link yandex.com");
ed.putString("Viewtab4Item4", "Tab1 Link yahoo.com");

ed.putString("Linktab4Item1", "google.com");
ed.putString("Linktab4Item2", "2av.com.ua");
ed.putString("Linktab4Item3", "yandex.com");
ed.putString("Linktab4Item4", "yahoo.com");

ed.commit();

};

@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);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
// When the given tab is selected, switch to the corresponding page in
// the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
}

@Override
public void onTabReselected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
}

/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
/*
* public class SectionsPagerAdapter extends FragmentPagerAdapter {
*
* public SectionsPagerAdapter(FragmentManager fm) { super(fm); }
*
* @Override public Fragment getItem(int position) { // getItem is called to
* instantiate the fragment for the given page. // Return a
* PlaceholderFragment (defined as a static inner class // below). return
* PlaceholderFragment.newInstance(position + 1); }
*
* @Override public int getCount() { // Show 3 total pages. return 3; }
*
* @Override public CharSequence getPageTitle(int position) { Locale l =
* Locale.getDefault(); switch (position) { case 0: return
* getString(R.string.title_section1).toUpperCase(l); case 1: return
* getString(R.string.title_section2).toUpperCase(l); case 2: return
* getString(R.string.title_section3).toUpperCase(l); } return null; } }
*/
/**
* A placeholder fragment containing a simple view.
*/
/*
* public static class PlaceholderFragment extends Fragment {
*//**
* The fragment argument representing the section number for this
* fragment.
*/
/*
* private static final String ARG_SECTION_NUMBER = "section_number";
*//**
* Returns a new instance of this fragment for the given section number.
*/
/*
* public static PlaceholderFragment newInstance(int sectionNumber) {
* PlaceholderFragment fragment = new PlaceholderFragment(); Bundle args =
* new Bundle(); args.putInt(ARG_SECTION_NUMBER, sectionNumber);
* fragment.setArguments(args); return fragment; }
*
* public PlaceholderFragment() { }
*
* @Override public View onCreateView(LayoutInflater inflater, ViewGroup
* container, Bundle savedInstanceState) { View rootView =
* inflater.inflate(R.layout.fragment_main, container, false); TextView
* textView = (TextView) rootView .findViewById(R.id.section_label);
* textView.setText(Integer.toString(getArguments().getInt(
* ARG_SECTION_NUMBER))); return rootView; } }
*/
}
[/syntax]
Тут должна быть подпись.

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Доступ из фрагмента к Preference

Сообщение Viewer » 08 май 2014, 07:57

Context.MODE_PRIVATE

Ответить