Skocz do zawartości

Znajdź zawartość

Wyświetlanie wyników dla tagów 'activity' .



Więcej opcji wyszukiwania

  • Wyszukaj za pomocą tagów

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukaj przy użyciu nazwy użytkownika

Typ zawartości


Forum

  • Społeczność android.com.pl
    • Regulaminy Forum
    • Przywitaj się!
    • Android.com.pl
    • Konkursy
    • OFF-Topic
  • Android
    • Nowości i plotki
    • FAQ Android
    • Android 10
    • Android 9.0 Pie
    • Android 8.0 Oreo
    • Android 7.0 Nougat
    • Android 6.0 Marshmallow
    • Android 5.0 Lollipop
    • Android 4.4 KitKat
    • Archiwum Android
    • Software PC
  • Gry i Aplikacje
    • Aplikacje Android
    • Gry Android
    • Poszukiwania gier i aplikacji
    • Porównania gier i aplikacji
    • Android Wear - Smartwatch
    • Modyfikacje Wizualne
    • Download
    • Multimedia
  • Co i gdzie kupić?
  • Programowanie
  • Modyfikacje Android OS
  • Elektronika
  • Honor
  • Google
  • HTC
  • LG
  • Samsung
  • Sony
  • Motorola
  • Huawei
  • Xiaomi / MIUI
  • OnePlus
  • Lenovo
  • Asus
  • myPhone
  • Pozostałe marki

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Od tej daty

    Do tej daty


Ostatnia aktualizacja

  • Od tej daty

    Do tej daty


Filtruj po ilości...

Znaleziono 24 wyników

  1. Witam. Piszę aplikację, w której wykorzystuję WebView do otwierania kilku stron www, ale do końca nie wiem czym się różni Activity od Fragment, większość przykładów na stackoverflow i ogólnie w necie jest pokazana na Activity, ale z tego co zauważyłem to nasze aplikacje w telefonach korzystają w większości przykładów z Fragmentów? I czy mogę użyć, albo czego powinienem użyć do wyświetlania stron, chodzi mi o WebView, normalnie wykorzystywałem, do tego Activity, ale jedną ze stron odpalam (to WebView) we Fragmencie i też działa, tylko mam czasami problem z TITLE który sam sobie ustawiam na pasku AppBar (Toolbar) i wywala mnie z apki przez to. Tak więc do WebView co jest bardziej wskazane Activity czy Fragmenty? Zauważyłem też, że np w activity jak odpalę jakąś stronę i zacznę coś na tej stronie robić, przejdę do jakiejś innej podstrony, to po naciśnięciu button back czyli wywołanie metody public void onBackPressed() cofa mnie tak jak powinno, czyli do poprzedniej podstrony, lub strony głównej, w Fragmencie tak niestety nie mam, cofa mnie do ostatniego widoku w aplikacji, dlatego też pytam kiedy i do czego jest bardziej wskazane Activity a do czego Fragmenty, jak prawidłowo z tego korzystać itd ??? Dodam kod Fragmentu z WebView może się przyda public class AdBlastFragment extends Fragment { SharedPreferences sharedPreferences; ProgressDialog pd = null; ProgressBar progressBar = null; private SwipeRefreshLayout swipe; private WebView webView; // private NestedWebView webView; public static final String MyPREFERENCES = "AdBlast"; private String login; private String password; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { PowerManager pm = (PowerManager) getActivity().getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "T:AG"); wakeLock.acquire(); getActivity().getWindow().addFlags( WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); final View view = inflater.inflate(R.layout.website, container, false); sharedPreferences = getActivity().getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); login = sharedPreferences.getString(this.getString(R.string.keyLogin), ""); password = sharedPreferences.getString(this.getString(R.string.keyPassword), ""); swipe = (SwipeRefreshLayout) view.findViewById(R.id.swpie); swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { LoadWeb(view); } }); LoadWeb(view); wakeLock.release(); return view; } public void LoadWeb(View view) { webView = (WebView) view.findViewById(R.id.website); WebSettings webSettings = webView.getSettings(); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); // webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); webView.getSettings().setAppCacheEnabled(true); webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); webSettings.setDomStorageEnabled(true); webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); webSettings.setUseWideViewPort(true); webSettings.setSavePassword(true); webSettings.setSaveFormData(true); webSettings.setEnableSmoothTransition(true); swipe.setRefreshing(true); webView.loadUrl("https://adblast.alternet.com/auth"); final String js = "javascript:document.querySelector('input[name=email]').value='" + login + "';" + "document.querySelector('input[name=password]').value='" + password + "';" + "document.getElementById('submit').click()"; webView.setWebViewClient(new WebViewClient() { // @Override // public boolean shouldOverrideUrlLoading(WebView view, String url) { // if (Uri.parse(url).getHost().equals("https://adblast.alternet.com/home")) { // //open url contents in webview // return false; // } else { // //here open external links in external browser or app // Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); // startActivity(intent); //// //// Intent intent = new Intent(Intent.ACTION_VIEW, AdBlastFragment.class); // Uri.parse(url) //// startActivity(intent); // //// FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); //// fragmentTransaction.addToBackStack("tag of fragment"); // dzięki temu działa onBackPressed() //// fragmentTransaction.replace(R.id.content_frame, new AdBlastFragment()); //// fragmentTransaction.commit(); // return true; // } // } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d("XXXXXXXXXXXXXXXXX", "your current url when webpage loading.." + url); pd = new ProgressDialog(getActivity()); pd.setTitle("Please Wait.."); pd.setIcon(R.drawable.ad); // pd.setProgressStyle(1); pd.setMessage("Website is Loading.."); pd.show(); super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { Log.d("YYYYYYYYYYYYYYYYYY", "your current url when webpage loading.. finish" + url); pd.dismiss(); if (Build.VERSION.SDK_INT >= 19 && !login.isEmpty() && !password.isEmpty()) { view.evaluateJavascript(js, new ValueCallback<String>() { @Override public void onReceiveValue(String s) { } }); } swipe.setRefreshing(false); } }); webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int newProgress) { ((MainActivity) getActivity()).setActionBarTitleAndIcon("Page loading : " + newProgress + "%", 0); if (newProgress == 100) { ((MainActivity) getActivity()).setActionBarTitleAndIcon(view.getTitle(), 0); } } }); } } I jeszcze jedno małe pytanie czy jest możliwość, żeby SWIPE po odświeżeniu nie cofało mnie do strony głównej, tylko odświeżyło tą stronę/podstronę gdzie się aktualnie znajduję?
  2. Coders Lab

    Fragmenty - podstawowe informacje

    Słów kilka na temat fragmentów w androidzie… Pamiętam, że gdy zaczynałem swoją przygodę z androidem i dotarłem do tematu fragmentów czułem się lekko zagubiony. „Po co to komu, skoro mogę sobie zrobić równie dobrze drugą aktywność i mieć tam wszystko to co miałbym w fragmencie” - tak sobie wtedy myślałem. Później gdy już zacząłem rozumieć fragmenty, to wszystko chciałem robić na fragmentach - ale tak totalnie wszystko, wszystko. Z perspektywy czasu widzę, że nie była to wcale tak cudowna droga jak na początku mi się wydawało. Trzeba odnaleźć złoty środek między tym co warto zrobić fragmentem, a tym co powinno zostać aktywnością. Kończmy ten wstęp i zaczynajmy. Czym jest fragment? Fragment jak sama nazwa wskazuje to „fragment” (czyli kawałek) aktywności - właściwie to widok z logiką przyczepiany do aktywności. To co odróżnia fragment od widoku, to fakt że fragment może posiadać swoją własną logikę. Aktywność może posiadać jednocześnie wiele fragmentów. Zaprezentuję teraz kilka przykładów z fragmentami w różnych kombinacjach. Będę do ich oznaczenia używał 2 kolorów: żółtego oraz zielonego. Na zamieszczonym wyżej obrazku widzimy aktywność, która posiada jeden fragment (żółty). Jak widać po lewej stronie na górze znajduje się navigation drawer, po kliknięciu na element z jego menu zapewne nastąpi podmiana fragmentu. Jest to w mojej opinii najczęstsze wykorzystanie fragmentu, rozwiązanie to pozwala na szybką i wygodną nawigację po aplikacji. Nie ma tu jednak niczego czego nie bylibyśmy w stanie wykonać bez tworzenia nowej aktywności. Idźmy dalej. Widzimy teraz sytuację, w której to na ekranie pojawiają się jednocześnie 2 różne fragmenty (żółty oraz zielony). Możesz powiedzieć „No ale po co? Dodatkowe komplikacje tylko…wszystko mógłbym mieć w jednej aktywności.” - w zasadzie masz rację. Możesz wszystko wrzucić do jednej aktywności, ale pomyśl jak „przyjemnie” będzie Ci się wtedy dokonywało zmian w takim klocu po 2, 3 lub 4 miesiącach. Jeden wielki widok, logika zbita na siłę do kupy w jednym miejscu - nadal uważasz, że fajniej będzie mieć to w jednej aktywności? Idź dalej. A co Ty na to? Masz tutaj 2 identyczne fragmenty (żółty 1 oraz żółty 2). Pewnie powiesz, że mogę sobie przecież zrobić widok i dodać go w po prostu layoucie i wyjdzie na to samo. No w zasadzie tak, ale co z kodem związanym z logiką? Wszystko do aktywności? Chcesz później pracować z takim klocem? Przychodzi mi do głowy jeszcze jedno - skoro one są takie same, to czy nie zduplikujesz kodu? A jeśli nawet nie to co sądzisz powiesz wtedy o jego czytelności i złożoności? Pomyśl też o nazwach zmiennych i pól - bt_power_a, bt_power_b, chyba nie chcesz zrobić tego sobie i swoim kolegom ?Idźmy dalej. Wow! Czy to fragment nad fragmentem? Tak! To dokładniej fragment żółty nad zielonym, a w realnym życiu najczęściej to po prostu Twój monit, który stworzyłeś dziedzicząc po klasie DialogFragment, która to z kolei dziedziczy po klasie „Fragment”. Powiem więcej, każdy wcześniej pokazany żółty fragment to właśnie ten fragment - w końcu dziedziczy po fragmencie, więc możesz go używać jako zwykły fragment, jak i jako monit z racji takiej, że dziedziczysz po DialogFragmencie. Co się dzieje z używanymi fragmentami? To zależy od tego czy odkładasz je na stos czy nie. Jeśli nie to sprawa jest prosta - są niszczone, jeśli tak otwarcie kolejnego fragmentu następuje „nad” obecnym fragmentem. Stos pozwala stworzyć historię odwiedzanych przez użytkownika fragmentów, możesz do tego zaimplementować własną nawigację umożliwiającą wędrowanie po historii po przez naciskanie przycisku „cofnij”. Cykl życia fragmentu vs cykl życia aktywności Fragmenty posiadają swój własny cykl życia, jednak z racji tej że są wyświetlane w aktywności to cykl ten jest ściśle powiązany z cyklem życia aktywności - czyli w aktywności poszczególne fragmenty mogą umrzeć, a aktywność dalej będzie żywa, ale odwrotna sytuacja nie może nastąpić. Myślę, że poniższy wykres (pochodzący ze strony Google, z działu o fragmentach) ładnie to wyjaśnia. Kiedy nie warto używać fragmentów Na to pytanie nie ma prostej odpowiedzi. To trzeba wyczuć kiedy warto ich używać, a kiedy wprowadzą tylko więcej zamieszania - bo tak się może zdarzyć. Jeśli nie planujesz tworzyć mocno rozbudowanego menu, lub będziesz potrzebował umożliwić innym aplikacją otwarcie Twojej aplikacji na konkretnej aktywności to sens używania fragmentów zanika. Problem gubienia fragmentów Gdy pracowałeś z DialogFragmentem zapewne zauważyłeś, że po obrocie ekranu dialog tej przestaje poprawnie reagować na zdarzenia - np. OnClick nie działa. Wynika to z faktu, że klikając w przycisk odnosisz się do niewłaściwego dialogu. Ten który stworzyłeś przed obrotem ekranu przestał już istnieć, w jego miejsce pojawił się nowy. Aby uniknąć sytuacji, w której przestajesz mieć kontrolę nad dialogiem powinieneś używać sensownych tagów (do utworzenia dialogu wymagane jest podanie taga). Umożliwiają one odnalezienie dialogu i ustawienie komunikacji na niego. Wszystko o czym mówię sprowadza się do tej jednej linijki kodu: val uninstallPackageDialog: UninstallPackageDialog? = fragmentManager!!.findFragmentByTag(UninstallPackageDialog.TAG) as UninstallPackageDialog? w Javie wyglądałoby to tak: uninstallPackageDialog = (UninstallPackageDialog) getSupportFragmentManager().findFragmentByTag(UninstallPackageDialog.TAG); if(uninstallPackageDialog != null){ ... } Dajcie znać czy Wam się podobało i napiszcie o czym jeszcze chcielibyście poczytać Specjalnie dla Android.com.pl Łukasz Bednarczyk
  3. Witam, od razu przedstawię problem, który jak na stan mojej wiedzy jest nie do przeskoczenia w pojedynkę, a którego rozwiązanie dla o wiele świetlejszych uczestników forum będzie pewnie bardzo proste. Startuję z aktywności act_2_2_menu, w której są dwie opcje rozpocznij i kontynuuj. Przyciśnięcie przycisku rozpocznij przenosi nas do aktywności act_2_3, która można powiedzieć jest aktywnością rozpoczynającą. Z tej aktywności przenosimy się naciskając jedyny możliwy do naciśnięcia klawisz do aktywności act_2_4 (dla przejrzystości sytuacji nie podaję kolejnych aktywności, w realu będą kolejne). Natomiast naciśnięcie klawisza kontynuuj, ma nas przenieść do aktywności, na której ostatnio znajdowaliśmy się, gdy podjęliśmy decyzję o wyjściu z programu. I Teraz pytanie, zadam je jak typowy laik: jak to zrobić, żeby zapisywały się do shared preferences dane danej aktywności właściwe tylko dla niej, po wejściu do niej, i jak zrobić, żeby te dane z tej aktywności determinowały później po uruchomieniu programu i naciśnięciu buttonu kontynuuj, że program przeniesie nas do ostatnio oglądanej aktywności. Poniżej przedstawiam fragmenty kodu, gdzie powstawiałem shared preferences intuicyjnie i gdzie stawiam znaki zapytania w metodzie switch w pierwszej z activity, dla zobrazowania momentu, w którym się zawiesiłem. Czy ktoś mógłby pomóc kawałkiem kodu i podsunąć jakieś rozwiązanie ? Chodzi o taki prosty rodzaj save`a. Dziękuję z góry za pomoc. AKTYWNOŚĆ act_2_2 menu public class act_2_2_menu extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_act_2_2_menu); TextView okienko = (TextView) findViewById(R.id.okienko) ; okienko.setText("Należy dokonać wyboru"); Button rozpocznij = (Button) findViewById(R.id.rozpocznij); Button kontynuuj = (Button) findViewById(R.id.kontynuuj); rozpocznij.setOnClickListener(this); kontynuuj.setOnClickListener(this); } public void onClick(View view) { Intent intent; switch (view.getId()) { case R.id.rozpocznij: intent = new Intent(act_2_2_menu.this, act_2_3.class ); startActivity(intent); break; case R.id.kontynuuj: intent = new Intent(act_2_2_menu.this, ????????????); startActivity(intent); break; } } } AKTYWNOŚĆ act_2_3 public class act_2_3 extends Activity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_act_2_3); TextView okienko_2_3 = (TextView) findViewById(R.id.okienko_2_3) ; okienko_2_3.setText("To jest początek"); Button button_2_3 = (Button) findViewById(R.id.button_2_3); button_2_3.setOnClickListener(this); } private void SavePreferences(String value){ SharedPreferences preferences==PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor=preferences.edit(); editor.putString("act_2_3"); editor.commit(); } public void onClick(View view) { Intent intent; switch (view.getId()) { case R.id.button_2_3: intent = new Intent(act_2_3.this, act_2_4.class ); startActivity(intent); break; } } } AKTYWNOŚĆ act_2_4 public class act_2_4 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_act_2_4); TextView okienko_2_3 = (TextView) findViewById(R.id.okienko_2_4) ; okienko_2_3.setText("To jest kolejna aktywność"); private void SavePreferences(String value){ SharedPreferences preferences==PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor=preferences.edit(); editor.putString("act_2_4"); editor.commit(); } }
  4. Otóż mam takie pytanie. Mam listę i z niej itema muszę pobrać 4 danę. To spoko ja na swoją wiedzę zrobił bym to tak jak niżej: public static String a; b... listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { a = list.get(i).getOwner().getAvatarUrl(); b... } }); I potem się do tych statycznych rzeczy odwołał w fragmencie, jednak nie do końca jestem pewien czy aby na pewno jest to dobry pomysł i tak można zrobić. Jak takie rzeczy powinno się robić?
  5. Witam, mam 3 krotkie pytania: 1) w jakich okolicznościach ginie Activity, które znajduje się pod spodem innego Activity? 2) jak często taka sytuacja ma miejsce? 3) czy warto brać to pod uwagę? Poniżej rozbudowanie: 1) wiem tylko o przypadku gdy jest duże obciążenie, wtedy gdy startuje nowe Activity te pod spodem killuje się (robi sie "stop" zamiast "pause") 2) może jakieś dane procentowe? link? 3) np. user coś tam pozaznaczał, i powiedzmy, że tego nie ma dużo, ale trzeba duzo zachodu, żeby to zasave'wowac (m.in. nadmiarowosc kodu i wrazliwosc). Potem kliknal cos i przeszedl do kolejnego activity. I jezeli te pod spodem zginie to trzeba wszystko odtworzyc. Ale jezeli to bedzie 1/100 sytuacji moze warto odpuścić? Jak to w waszej praktyce wygląda?
  6. W MainActivity mam coś takiego: DescActivity.java wygenerowany jest przez Android Studio, czyli: W activity_desc.xml mam: desc_row.xml to plik zawierający kilka TextView i Button. Jak przekazać ID z MainActivity do fragmentu "DescFragment" dodanego w activity_desc.xml do DescActivity?
  7. ​Witam. Napisałem ViewPager coś na stylu snapchat gdzie możemy przesuwać na lewo i prawo activity. Nie potrafię jednak ustawić sobie wybranego activity aby pojawiało się jako pierwsze przy właczaniu aplikacji. Zrobilem 3 strony 1,2 i 3. Chciałbym aby pojawiała się pierwsza strona 2 ale zawsze pojawia się 1. Czytałem że można to jakoś zrobić w pliku manifest ale nie mam pojęcia jak. Ps. przepraszam że tytuł nie po Polsku.
  8. Witam , potrzebuje podpowiedzi , rad w związku z pisaniem aplikacji. Mianowicie chce aby po wybraniu pozycji z ListView aplikacja otwiera nowe Activity(szablon) wraz z danymi ktore odnoszą sie do wybranej pozycji ListView a gdy wybiore kolejna pozycje z ListView otwiera sie Activity(szablon) ale z innymi danymi ktore odnoszą sie do innej pozycji ListView. Przykład: mam kilka pozycji w ListView np. Urzad miasta, biuro paszportowe, urzad pracy itd. Gdy wybiore Urzad miasta wyswietla sie Activity (szablon) ktory bedzie zawieral dane tj, Adres, nr telefonu , godziny otwarcia itp i te dane powinny sie zmieniac zalezenie od wybranej pozycji z ListView. I gdzie najlepiej przechowywac te dane? W stringach.xml , bazie danych , na sztywno wpisac w activty czy moze jeszcze inaczej? Activity z ListView import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.res.Resources; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; import android.widget.SearchView; import android.widget.Toast; public class Activity_urzedy extends Activity { private ListView LVListaUrzedow; private String[] lista_urzedow_string; private EditText editText; ArrayAdapter<String> adapter; Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity_urzedy); LVListaUrzedow = (ListView) findViewById(R.id.LVListaUrzedow); editText=(EditText) findViewById(R.id.editText); editText.setHint("Wpisz aby wyszukac"); initResources(); initLanguagesListView(); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { Activity_urzedy.this.adapter.getFilter().filter(s); } @Override public void afterTextChanged(Editable s) { } }); } private void initResources() { Resources res = getResources(); lista_urzedow_string = res.getStringArray(R.array.lista_urzedow_string); } private void initLanguagesListView() { adapter=(new ArrayAdapter<String>( getApplicationContext(), R.layout.layout_do_adaptera, lista_urzedow_string)); LVListaUrzedow.setAdapter(adapter); LVListaUrzedow.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int pos, long id) { context=getApplicationContext(); Intent intent=new Intent(context, szablon_urzedy.class); startActivity(intent); } }); }
  9. Witam ponownie. Podczas pracy nad aplikacją trafiłem na ostatnią trudną rzecz, która okazała się nie do przeszkoczenia. Otóż, posiadam 2 aktywności (o nazwach FA, SA). W aktywności SA posiadam na razie 1 fragment o nazwie FF. W FA obliczam dane (wartości double), które wysyłam do SA za pomocą Intent (putExtra, getExtra). Działa to w porządku, ale teraz chciałbym pobrać dane z tego SA do fragmentu FF. Niestety nie wiem jak. Dodam tylko, że fragmentu nie mam zdefiniowanego w pliku XML. Jako, że chce poźniej zrobić tam następne fragmenty, które będą korzystały z tych samych danych, dlatego dane pierw wysyłam do aktywności SA. Czy to jest dobra praktyka? W sumie nie wiem czy jest alternatywa do tego.
  10. Witam, ostatnio mam mały problem z prostą aplikacją która ma dwie Activity, w pierwszej Activity znajduje sie przycisk który przełącza na drugą. Po uruchomieniu aplikacja wyłącza się. Przeczytałem że tak sie dzieje gdy nie można znaleźć id przycisku które podałem, zobaczcie sami: Aplikacja.java fragment_aplikacja.xml Mam jeszcze jedno pytanie: Dlaczego w projekcie jest tak dużo plików xml (podział na fragment i activity) skoro używam tylko fragment_aplikacja.xml (do Aplikacja.java i drugie takie samo do drugiej Activity)? http://oi60.tinypic.com/19s4kn.jpg
  11. Witam Głowię się już od dłuższego czasu nad pewnym problemem. Otóż posiadam główną activity - MainActivity, w której użytkownik wprowadza dane po czym wciska button. Button uruchamia metodę, która prowadzi obliczenia na tych danych i wyświetla rezultat. Jednak podczas wykonywania metody może pojawić się wyjątek przy, którym wyświetla się kolejne activity - SecondActivity w celu uzupełnienia danych. I tu właśnie pojawia się problem. Jak zatrzymać metodę, a konkretnie pętlę z której uruchamiana jest SeconActivity, aż do momentu uzupełnienia danych i zakończenia activity. Dane pobieram metodą onActivityResult. Zależy mi na tym aby metoda zaprzestała wykonywać kod do czasu powrotu z SecondActivity. Co prawda jestem początkujący, ale przeszukałem pół internetu i w zasadzie nie znalazłem rozwiązania. Proszę pomóżcie bo zaraz ocipieję.
  12. brystel

    Działanie aplikacji w tle

    Witam, co zrobić aby dane activity działało w tle? Konkretnie mam na myśli activity, które liczy odległość, maksymalną prędkość, średnią prędkość itd. korzystając z sygnału GPS, mam też options menu i dajmy na to jeśli wchodzę w zakładkę "informacje o sygnale" (uruchamiane jest nowe activity) chciałbym aby te poprzednie ciągle było aktywne (tzw. dalej liczyło odległość i wykonywało swoje metody). Proszę o rady
  13. Rorschach

    Dostęp do entries spod Activity

    ---------- Post dołączono o 08:11 ---------- Poprzedni post napisano o 22:12 ---------- [/color]Którki update sytuacji: z xmla wyrzuciłem entries, ListView wygląda teraz tak: <ListView android:id="@+id/lvFollowed" android:layout_height="wrap_content" android:layout_width="fill_parent"></ListView> klasa jest skonstruowana w ten sposób: public class Followed extends Activity implements OnClickListener{ Button bAdd; EditText etAdd; ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.followed); bAdd = (Button) findViewById(R.id.bAddfollowed); etAdd = (EditText) findViewById(R.id.etAdded); bAdd.setOnClickListener(this); lv = (ListView) findViewById(R.id.lvFollowed); String[] accounts = getResources().getStringArray(R.array.followed); lv.setAdapter(new ArrayAdapter<String>(getBaseContext(), R.layout.followed, accounts)); } @Override public void onClick(View arg0) { // TODO Auto-generated method stub String account = etAdd.getText().toString(); String[] accounts = getResources().getStringArray(R.array.followed); //accounts //lv.setAdapter(new ArrayAdapter<String>(this, R.layout.followed, accounts)); } } Niestety po wejściu w czynność dostaję Force Close, które włącza się przy funkcji setAdapter. Gdzie tu jest błąd? ---------- Post dołączono o 22:57 ---------- Poprzedni post napisano o 08:11 ---------- SOLVED: wystarczyło poprawić na lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, accounts)); simple_list_item_1, BARDZO WAŻNE jakby ktoś napotkał kiedyś na podobny problem
  14. Mam TabHost'a, na zakładkach umieszczone listy z danymi z bazy. Każda zakładka posiada również button, który otwiera Activity do dodawania elementu do bazy. Problem polega na tym, że po dodaniu rekordu do bazy i powrocie do Activity z zakładkami, lista się nie odświeża. Dodałem flagę Intent.FLAG_ACTIVITY_CLEAR_TOP przy dodawaniu tabów, ale wtedy lista odświeża się dopiero jak użyje zakładek i powrócę. Pomyślałem więc, że zrobię tak: @Override protected void onRestart() { super.onRestart(); Intent refresh = new Intent(this, GlowneActivityZZakladkami.class); startActivity(refresh); this.finish(); } ale takie rozwiązanie również mnie nie zadowala, gdyż przenosi mnie automatycznie na 1 zakładkę. Pytanie, czy jest możliwość "odświeżenia" Activity z innego Activity? Chciałbym, by gdy będę na 3 zakładce i kliknę button dodaj, na nowym Activity uzupełnię pola i dodam do bazy dane, to po zamknięciu tego Activity powróciło mi do 3 zakładki z odświeżoną listą. I jeszcze jedno pytanie, chciałbym by program przy uruchomieniu uaktywniał zakładkę nie pierwszą, ale np 3, albo pobrany z bazy danych numer, jak to zrobić? Dziękuję.
  15. Problem wygląda następująco. Mam w swojej aplikacji 3 aktywności, pomiędzy którymi porusza się użytkownik (A->B->C). W momencie kiedy następuje przejście z aktywności B do C dwie pierwsze nie są mi już potrzebne i chce je ubić, żeby nie pracowały w tle. Z tego co zauważyłem można to zrobić w łatwy sposób używając odpowiedniej flagi tworząc intencje Intent intent = new Intent(this, C.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); Niestety takie coś w ogóle nie działa. Kombinowałem też w pliku AndroidManifest z ustawianiem android:launchMode, ale żadna kombinacja nie przynosi efektu. Co najciekawsze wygląda na to, że żadne flagi nie działają, bo cokolwiek bym nie wpisał efekt jest żaden tak jaby wszystkie flagi były kompletnie ignorowane. Czy o czymś zapomniałem, albo robię coś źle bo ja już nie mam pomysłu. Ewentualnie może ma ktoś jakiś inny sposób na zakończenie dwóch pierwszych aktywności. Oczywiście B można się pozbyć w łatwy sposób używając finnish(); tylko jak ubić z aktywności B aktywność A?
  16. bolok

    Swype - Activity Not Found

    Instalowałem dzisiaj Swype w wersji: "swype2.29.71.20203-HVGA-ASCII-EN-PL", za pomocą Astro. I przy próbie uruchomienia taki błąd wyskakuje: Dodam że nie mam roota. W czym może tkwić problem?
  17. Hej! Programowałem ostatnio sporo w WPF i projektowałem formatki w XAMLu, więc sporo sobie obiecywałem po Androidowym XMLu. Tymczasem im więcej o nim czytam, tym bardziej jestem przekonany, że projektować okienka w XMLu po prostu mi się nie opłaca. Najbardziej nie odpowiada mi, że nie mam w kodzie bezpośredniego dostępu do komponentów - za każdym razem muszę zawołać getViewById() i wykonać cast na właściwy view. Wiem, że XAML przy Androidowym XMLu to fajerwerki i porównywać ich nie ma sensu, ale - prawdę mówiąc - oczekiwałem, że choć komponenty będą widoczne poprzez nazwę, bez dodatkowego kodu. Po przeczytaniu dokumentacji na temat dostępu do komponentów natychmiast stwierdziłem, że pierwszym co zrobię, będzie napisanie metody, która na samym początku wczyta wszystkie komponenty do odpowiednich pól klasy, aby ograniczyć liczbę niepotrzebnych wywołań getViewById(). Tyle że jeśli chwilę się zastanowić, to taką implementację już tylko krok dzieli od metody, która oprócz załadowania komponentów do pól activity, chwilę wcześniej po prostu je utworzy (a kodu, na dobrą sprawę, będzie mniej więcej tyle samo - każdy atrybut XMLa wystarczy przepisać na pojedyncze wywołanie settera Javy). Kolejnym aspektem, który mi nie odpowiada jest fakt, iż - z tego, co zrozumiałem (proszę mnie poprawić, jeśli piszę bzdury) - XML jest interpretowany w czasie uruchomienia. Innymi słowy, tak czy kwak ktoś tworzy, jeden po drugim, zaprojektowane wcześniej kontrolki - z tą tylko różnicą, że wcześniej sparsowany musi zostać odpowiedni plik XML. W praktyce więc skorzystanie z XMLa równa się w tym miejscu tylko niewielkiemu opóźnieniu w uruchomieniu programu, efekt końcowy jest taki sam. Dla kontrastu dodam tylko, że XAML podczas kompilacji jest przekształcany w kod C#, więc podczas uruchamiania programu nie ma mowy o żadnym parsowaniu. Natomiast wspomniane rozwiązanie istnieje też w Delphi (mowa o plikach DFM włączanych w zasoby programu). Jestem programistą od kilkunastu lat i po przebrnięciu przez VCL, Windows Forms i - ostatnio - Windows Presentation Foundation z XAMLem argument o możliwości wyklikania interface'u już do mnie nie przemawia, nie pamiętam, kiedy ostatnio użyłem toolboxa do posadzenia kontrolki na formatce Czy poza wspomnianym argumentem istnieją jakieś inne powody, dla których warto korzystać z XMLa? Proszę tylko o właściwe odebranie mojego pytania. Daleko mi od flame-wara pod tytułem "XML w Androidzie jest do kitu", po prostu chcę wybrać wygodniejszy dla mnie sposób programowania, a do tej pory wygodniejsze (i nawet odrobinę wydajniejsze) wydaje mi się konstruowanie layoutu z kodu. Nie mam jednak zbyt dużo doświadczenia w pisaniu Androidowego kodu i być może nieświadomie idę ścieżką, która w późniejszym czasie doprowadzi do utrudnień w rozwijaniu i konserwacji programu. Pozdrawiam -- Spook.
  18. adrian215

    activity osobne aplikacje

    Witam, nie moglem nigdzie znaleźć rozwiązania mojego problemu, mam nadzieję, że ktoś pomoże mianowicie po utworzeniu w projekcie kilku plików activity, a następnie uruchomieniu aplikacji na emulatorze bądź też telefonie, każda activity widziana jest w menu jako osobna ikona (tak jakbym jednocześnie stworzył kilka programów). Czy istnieje możliwość ukrycia pozostałych activity, tak aby tylko główna była widziana w menu? Przepraszam jeżeli temat gdzieś istniał, ale nie mogłem tego znaleźć ani na forum, ani na innych stronach. :PP Dziękuję za pomoc, Pozdrawiam
  19. Mam problem z obsługą zdarzenia zmiany orientacji ekranu. W chwili kiedy jest zmieniana orientacja nastepuje zastosowanie onSaveInstanceState, onCreate, onStart, onRestoreInstanceState, onResume, onConfigurationChanged W którymś z momentów odwołanie do odpowiedniego TextView zostaje... usunięte (a raczej nie zainicjowane na nowo do prawidłowego contentView). Kod: function reagujaca na onClick() { (... wczesniejsze reakcje) final TextView tvOutput = (TextView) findViewById(R.id.tv_output); tvOutput.setText(getString(R.string.ping_execute) + ":" + HostnameValue + "\n"); final Handler handler = new Handler() { @Override public void handleMessage(Message message) { Log.d(TAG, "Dostalem linijke " + message.obj); tvOutput.append((String) message.obj + "\n"); } }; final Thread thread = new Thread() { @Override public void run() { // Inicjalizacja handlera Runtime runtime = Runtime.getRuntime(); try { Process process = runtime.exec(cmd); BufferedReader input = new BufferedReader( new InputStreamReader(process.getInputStream()), 8000); String inputLine; while ((inputLine = input.readLine()) != null) { if (DEBUG) { Log.d(TAG, "Mam linijke " + inputLine); } handler.sendMessage(handler.obtainMessage(1, inputLine)); } } catch (Exception e) { Log.d(TAG, "Mam wyjatek"); e.printStackTrace(); } } }; thread.start(); W logach mam informacje, ze hendler jest prawidlowo obsluzony (dostaje linijke). @Override public void onStart() { Log.d(TAG, "onStart"); super.onStart(); } @Override public void onResume() { Log.d(TAG, "onResume"); super.onResume(); } @Override protected void onRestoreInstanceState(Bundle outState) { Log.d(TAG, "onRestoreInstanceState"); String buf = outState.getString("tvOut"); ((TextView) findViewById(R.id.tv_output)).append(buf); super.onRestoreInstanceState(outState); } @Override protected void onSaveInstanceState(Bundle outState) { Log.d(TAG, "onSaveInstanceState"); String buf = ((TextView) findViewById(R.id.tv_output)).getText() .toString(); outState.putString("tvOut", buf); super.onSaveInstanceState(outState); } W którym miejscu powinno się znaleźć odwołanie do TextView.
  20. Chciałbym zrobić okienko gdzie na pierwszej zakładce wyświetlane sa dane w trybie edycji, a na kolejnych zakładkach wyświetlać rekordy w relacji do edytowanego rekordu. Czy powinno to być pojedyncze activity z zakładkami czy tab manager wywołujący różne activity dla poszczególnych zakładek? Które rozwiązanie jest efektywniejsze? Sent from my GT-P1000 using Tapatalk
  21. Witam, mam napisany fragment programu który wyświetla menu i po wybraniu jednej z opcji startuje nowe Activity takim oto kodem : Intent myIntent = new Intent(getApplicationContext(), doom_play.class); startActivityForResult(myIntent, 0); I jest super - wszystko się odpala, nowe Activity działa jak należy ;] Problem powstaje przy powrocie do początkowego Activity... Chciałem obsłużyć to przyciskiem "Back" telefonu więc w doom_play.java dodałęm następujący fragment : @Override public void onBackPressed() { Intent intent = new Intent(); setResult(RESULT_OK, intent); finish(); } i wtedy aplikacja albo się wykrzacza(zdarzyło się raz, może dwa), albo czyści ekran (wyświetla na czarno) i przycisk "Back" nie reaguje - jedyne co pozostaje to home -> i kill aplikacji Chwilowo doom_play.java, czyli drugie Activity, zawiera kod ze strony (nie wklejam go tutaj bo jest stosunkowo dług) : Playing with graphics in Android – Part V on Android Development [Generalnie ten kod wyświetla SurfaceView na którym po dotknięciu pojawiają się latające grafiki] Będę wdzięczny za wszelkie sugestie i linki do tutoriali które mogą mi pomóc. Pozdrawiam!
  22. Witam, na wstępie zaznaczę, iż nie mam doświadczenia w programowaniu aplikacji na system Android, lecz w miarę dobre w programowaniu w J2SE. mam problem z tym jak przekazać pewien obiekt pomiędzy dwoma Activity, konkretnie chodzi mi o to, że pierwsze Activity jest to Widok Logowania się (do serwera na za pomocą socketu, który napisałem już wcześniej) i po wpisaniu adresu serwera oraz portu tworzony Jest Socket oraz DataOutputStream i DataInputStream i po utworzeniu tych elementów uruchamia się następne Activity które jest głównym oknem programu, ale żeby mogło ono się komunikować z serwerem muszę przekazać do niego obiekty DataInputStream oraz DataOutputStream. W J2SE robiłem to za pomocą referencji a tu nie mam najmniejszego pomysłu jak to poprawnie wykonać, może ktoś będzie w stanie udzielić mi jakiejkolwiek wskazówki jak rozwiązać ten problem. z góry dziękuję. pozdrawiam.
  23. Jakoś nie udało mi się znaleźć satysfakcjonującej odpowiedzi, a jednak muszę się szybko uwikłać z programem w pracy (i to w dodatku pierwszym w życiu na Androida, jak i w samej Javie, więc nie mając praktycznie żadnego doświadczenia;/). W skrócie postaram się streścić co mam, a mam:): - własną klasę, powiedzmy cos(int id, string naziwsko, string kod) - mam listę, do której wrzucam elementy ww. klasy (czyli listaCosiow<cos>) - mam główny widok wyświetlający listę wszystkich elementów i zadeklarowane zdarzenie onItemClickListener, które ma otwierać nowe okno z danymi szczegółowymi elementu Jak do tej pory w miarę jakoś sobie radziłem, tak teraz się zakleszczyłem na przekazaniu przez Activity (startActivityForResult) parametru klikniętego elementu w celu otwarcia nowego okna i edycji danych oraz zapisania i powrotu do głównej listy (ale to już inna bajka). Do elementu, w który kliknąłem uzyskuje bez problemu dostęp (co potwierdza dymek Toast). Nowa aktywnosć też tworzy się bez problemów, ale jak w nowej aktywności odczytać wskazany element i wczytać jego dane do edycji?? Gdzieś widziałem, że ponoć używanie do powyższego Activity, nie jest dobrym pomysłem, ale nie zakumałem czaczy;/. Jeśli tak to byłbym wdzięczny za wskazówkę jak inaczej podobna funkcjonalność zaimplementować (lub na które demo z Api Google zerknąć) zwłaszcza, że okno potomne musi umożliwiać przewijanie ekranu oraz umożliwiać otwieranie kolejnych widoków potomnych dla list wyboru i nie tylko, itp itp. Wiem, że jak na początek z programowaniem na Androida rzuciłem się na głęboką wodę, ale siły wyższe o tym zadecydowały, a muszę przynajmniej interfejsy oprogramować by mieć co opisać, a następnie na spokojnie wykończyć soft:D Bym zapomniał, całość tworzę na Androida 2.1, jakie jest prawdopodobieństwo, że ten sam kod ruszy bez problemu na ew. 2.2?? Dzięki za ew. sugestie i pozdrawiam.
  24. jestemnawakacjach

    TabHost i nowe Activity

    A więc, mam 4 Activity podpięte pod TabHosta, np jedna to Wyszukaj. Po wciśnięciu Buttona wyszukaj otwiera się nowe Activity. Jednak chciałbym aby to Activity wyświetlane było w aktualnej zakładce a nie przysłaniało aktualne używane. Jakieś pomysły? a:D
x