Вопросы с тегами [android-activity]

1

голосов
2

ответ
1.2k

Просмотры

Общий переходный элемент, не я не рабочие могу решить метод ActivityOptionsCompat.makeSceneTransitionAnimation (mContext, p1, p2);

Я стараюсь, чтобы начать деятельность с разделяемым переходом элемента из ресайклера адаптера. Вот фрагмент кода: - @Override общественность недействительного onBindViewHolder (конечный держатель ViewholderPostFeed, конечное положение INT) {holder.post_header.setOnClickListener (новый View.OnClickListener () {@Override общественный недействительный OnClick (View v) {если (isLoggedIn () ) showAlertDialog (v), иначе {если (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) {// Вызов некоторых материалов API, дизайн здесь Намерение myIntent = новый Intent (MyApplication.getAppContext (), UserProfile.class); myIntent .setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); myIntent.putExtra ( "NAME" postFeed.getUser_name ()); myIntent.putExtra (» startActivity (myIntent); }}}}); Ошибка: Не удается разрешить метод ActivityOptionsCompat.makeSceneTransition (... Context, ... Посмотреть ... String); Я дал имя перехода в row_layout, а также в user_activity.xml: tansitionName = «Профиль» tansitionName = «user_name» Пожалуйста, помогите. startActivity (myIntent); }}}}); Ошибка: Не удается разрешить метод ActivityOptionsCompat.makeSceneTransition (... Context, ... Посмотреть ... String); Я дал имя перехода в row_layout, а также в user_activity.xml: tansitionName = «Профиль» tansitionName = «user_name» Пожалуйста, помогите.
Asif Ali
1

голосов
0

ответ
239

Просмотры

вкладки активности не показывает никаких вкладок

Если я пытаюсь создать новый проект с вкладками деятельностью, нет вкладки не показывает. Назовите меня сумасшедшим, но я на самом деле, как вкладки в моей «закладках деятельности». Я искал на Youtube, и это кажется вкладки просто придумать для других. Изменилось ли что-то с новейшей версией студии Android? Как добавить фактические вкладки и где я могу редактировать содержимое 3-х фрагментов, которые я хочу? Это кажется более запутанным, чем это должно быть. Благодарю.
Matt
1

голосов
0

ответ
187

Просмотры

Android Выход / Enter Переход

Я пытаюсь осуществить переход на выход для моего MainActivity и он не работает. Если я пытаюсь выбрать определенный вид всегда приводит к выгорают обоих видов деятельности. // Результаты в Fade GetWindow () setExitTransition (новый TransitionSet ()).; // Результаты в слайд-GetWindow () setExitTransition (новый TransitionSet () addTransition (новый слайд ()).). // Результаты в Fade GetWindow () setExitTransition (новый TransitionSet () addTransition (новый Slide () addTarget (вид))..).
Epig
1

голосов
1

ответ
79

Просмотры

Во избежание выхода приложения при нажатии кнопки назад

У меня есть один основной вид деятельности и один адаптер в менеджере app.So файла, когда я открываю папку в приложении, затем откройте вложенную папку, а затем нажмите кнопку, спину к / главному экрану домашнего экрана назад. Я хочу, чтобы вернуться к экрану подпапок при нажатии Назад, затем папок на экране при нажатии клавиши назад, а затем на главный экран по нажатию назад .. Но сейчас, когда я нажимаю кнопку назад, я сразу вернусь к главному экрану. Как я могу добиться этого? InternalStorage.java: общественный класс InternalStorage расширяет AppCompatActivity реализует MyRecyclerViewAdapter.ItemClickListener {MyRecyclerViewAdapter адаптер; частный ArrayList MyList, myList2 ,; Строка путь = Environment.getExternalStorageDirectory () getAbsolutePath (). общественности статической булевых selectallflag = ложь; RecyclerView recyclerView; частный статический конечная строка TAG = «ком. viewIntent1.setDataAndType (Uri.fromFile (каталог), "аудио / MPEG"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Иначе, если (string1.endsWith ( "молния".)) {Намерение viewIntent1 = новое Намерение (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "приложение / застежка-молния"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Иначе, если (string1.endsWith (»MP4" .)) {Намерение viewIntent1 = новое Намерение (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "видео / mp4"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Иначе, если (string1.endsWith ( "JPEG.")) {Намерение viewIntent1 = новое Намерение (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "изображение / *"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Иначе, если (string1.endsWith ( "PNG.")) {Намерение viewIntent1 = новое Намерение (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "изображение / *"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Еще если (string1.endsWith ( "PDF".)) {Намерение viewIntent1 = новый Intent (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "приложение / PDF"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Иначе, если (string1.endsWith () "APK.") {Намерение viewIntent1 = новое Намерение (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "приложение / vnd.android.package-архив"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Иначе, если (string1.endsWith ( "TXT.")) {Намерение viewIntent1 = новое Намерение (Intent.ACTION_VIEW); viewIntent1.setDataAndType (Uri.fromFile (каталог), "текст / *"); startActivity (Intent.createChooser (viewIntent1, NULL)); } Еще Toast.makeText (это, "неподдерживаемый формат", Toast.LENGTH_SHORT) .show (); } Общественного ArrayList метод1 (Файл е) {файл List2 [] = f.listFiles (); MyList = новый ArrayList (); если (! = песни2 NULL) {для (INT I = 0; я <list2.length; я ++) {myList.add (List2 [я] .getName ()); }} Еще Toast.makeText (это, "папка пуста", Toast.LENGTH_SHORT) .show (); вернуться MyList; } Общественного ArrayList метод2 (Файл е) {файл List2 [] = f.listFiles (); myList2 = новый ArrayList (); если (! = песни2 NULL) {для (INT I = 0; я <list2.length; я ++) {myList2.add (List2 [я] .getPath ()); }} Еще Toast.makeText (это, "папка пуста", Toast.LENGTH_SHORT) .show (); вернуться myList2; } @Override общественного недействительными onBackPressed () {selectallflag = ложь; super.onBackPressed (); } частная пустота setAdapter () {RecyclerView recyclerView = (RecyclerView) findViewById (R.id.rvNumbers); INT numberOfColumns = 4; recyclerView. setLayoutManager (новый GridLayoutManager (это, numberOfColumns)); Адаптер = новый MyRecyclerViewAdapter (это, MyList, myList2); adapter.setClickListener (это); recyclerView.setAdapter (адаптер); }} MyRecyclerViewAdapter.java: класс MyRecyclerViewAdapter общественности расширяет RecyclerView.Adapter {личное ArrayList mData; частный ArrayList mData2; частный LayoutInflater mInflater; частное ИНТ selected_position; частный ItemClickListener mClickListener; частный ArrayList mSelected = новый ArrayList (); ArrayList файлы = новый ArrayList (); частный статический конечная строка TAG = «com.example.dell_1.myapp3.InternalMemory»; контекст частного контекста; // данные передаются в конструктор общественного MyRecyclerViewAdapter (контекст Context, ArrayList данных, ArrayList data2) {этого. mInflater = LayoutInflater.from (контекст); this.mData = данные; this.mData2 = data2; this.context = контекст; } // раздувает расположение клеток из XML при необходимости @Override общественного ViewHolder onCreateViewHolder (ViewGroup родитель, внутр viewType) {Посмотреть вид = mInflater.inflate (R.layout.recyclerview_item, родители, ложь); вернуть новый ViewHolder (вид); } // связывает данные к TextView в каждой клетке @Override общественной пустоты onBindViewHolder (держатель ViewHolder, Int положение) {String, животное = mData.get (положение); Строка animal2 = mData2.get (положение); INT THUMBSIZE = 150; Растровое ThumbImage = ThumbnailUtils.extractThumbnail (BitmapFactory.decodeFile (animal2), THUMBSIZE, THUMBSIZE); Растровый палец = ThumbnailUtils.createVideoThumbnail (animal2, MediaStore.Video.Thumbnails.MINI_KIND); holder.myTextView.setText (животное + ""); если {holder.myImage.setImageResource (R.drawable.song) (животное = NULL && animal.endsWith (»mp3" ).!); } Еще {если holder.myImage.setImageResource (R.drawable.pdficon2) (животное = NULL && animal.endsWith ( "PDF").!); } Еще если (! "JPEG" животное = NULL && animal.endsWith () && BitmapFactory.decodeFile (animal2)! = NULL) {holder.myImage.setImageBitmap (ThumbImage); } Еще если (животное = NULL && animal.endsWith ( "PNG.") && BitmapFactory.decodeFile (animal2)! = NULL) {holder.myImage.setImageBitmap (ThumbImage); } Еще если (животное = NULL && animal.endsWith (»mp4" .)) {Holder.myImage.setImageBitmap (большой палец); } Еще {если holder.myImage.setImageResource (R.drawable.zip) (животное = NULL && animal.endsWith ( "молния").!); } Еще {если holder.myImage.setImageResource (R.drawable.song) (животное = NULL && animal.endsWith ( "ААС.!")); } Еще {если holder.myImage.setImageResource (R.drawable.text) (животное = NULL && animal.endsWith ( ".txt").!); } Еще если (животное! = NULL && animal.endsWith ( "APK")) {PackageInfo packageInfo = контекст. getPackageManager () .getPackageArchiveInfo (animal2, PackageManager.GET_ACTIVITIES); если (packageInfo! = NULL) {ApplicationInfo AppInfo = packageInfo.applicationInfo; appInfo.sourceDir = animal2; appInfo.publicSourceDir = animal2; Drawable значок = appInfo.loadIcon (context.getPackageManager ()); Растровые bmpIcon (значок (BitmapDrawable)) = .getBitmap (); holder.myImage.setImageBitmap (bmpIcon); }} Еще {holder.myImage.setImageResource (R.drawable.folder); } Если (selectallflag) {holder.itemView.setBackgroundColor (Color.MAGENTA); }} // общее количество клеток @Override общественности INT getItemCount () {вернуться mData2.size (); } // хранит и перерабатывает взгляды, как они прокручиваются от экрана общественного класса ViewHolder расширяет RecyclerView.ViewHolder реализует View.OnClickListener, View.OnLongClickListener {TextView myTextView; ImageButton myImage; ViewHolder (View itemView) {супер (itemView); myImage = (ImageButton) itemView.findViewById (R.id.buttonimage); myTextView = (TextView) itemView.findViewById (R.id.info_text); myImage.setOnClickListener (это); myImage.setOnLongClickListener (это); } @Override общественности недействительным OnClick (View вид) {если (mClickListener! = NULL) mClickListener.onItemClick (вид, getAdapterPosition ()); } // удобный метод для получения данных в позиции нажмите общественной Строка GetItem (Int ID) {вернуться mData2.get (ID); } // позволяет щелчки события, которые будут пойманы общественности недействительным setClickListener (ItemClickListener itemClickListener) {this.mClickListener = itemClickListener; } // Родитель деятельность будет осуществлять этот метод, чтобы реагировать на событие нажатия интерфейса ItemClickListener общественности {аннулируется onItemClick (View вид, внутр положение); булево onLongClick (View вид, внутр положение); } mClickListener = itemClickListener; } // Родитель деятельность будет осуществлять этот метод, чтобы реагировать на событие нажатия интерфейса ItemClickListener общественности {аннулируется onItemClick (View вид, внутр положение); булево onLongClick (View вид, внутр положение); } mClickListener = itemClickListener; } // Родитель деятельность будет осуществлять этот метод, чтобы реагировать на событие нажатия интерфейса ItemClickListener общественности {аннулируется onItemClick (View вид, внутр положение); булево onLongClick (View вид, внутр положение); }
natalie jkb
1

голосов
2

ответ
361

Просмотры

Android активность воссоздана когда активность от фона (пауза) на передний план

Hi Android профессионалы, я попал в небольшой вопрос о каком-то деятельности жизненного цикла. Я упомянул мою проблему с шаг за шагом: - запустить приложение с приложением значок с главного экрана. Введите некоторые данные в редактировать текстовые поля в recyclerview в деятельности А. нажмите кнопку домой и запустить другое приложение (любое приложение, как Facebook, Twitter). Теперь наше приложение находится в приостановленном состоянии и в фоновом режиме с пустыми значениями. Теперь нажмите кнопку Недавние приложения и запустить наше приложение (от фона). Теперь приложение запускаются с активностью А, но эта деятельность воссоздана. Я также отключить Не сохранять действия в Developer вкладке options.My Тестирование Levono A8 50. Я потратил 3 дня времени по этому вопросу. Любой из вас есть идеи по этому вопросу. Спасибо
krish
1

голосов
2

ответ
191

Просмотры

Отключение кнопки возврата на предыдущую деятельность, когда dialogfragment показано

У меня есть деятельность, которая показывает dialogfragment. Я уже установил dialogfragment отменяемой ложь, но основная активность по-прежнему захватывает кнопку назад прессу. Моя основная деятельность переопределила onBackPressed метода, но я не хочу, чтобы это выполнить, когда dialogfragment показано. Как отключить кнопку назад, когда dialogfragment показано? Должна ли я проверить от активности onBackPressed методы, если dialogfragment показан и игнорировать кнопку задней прессу?
Poly Bug
1

голосов
1

ответ
105

Просмотры

Я назвал намерение начать деятельность. Но это займет больше времени, чтобы начать

деятельность занять больше времени для запуска. Вот мой код Намерение Намерение = новый Intent (getActivity (), McallContactsActivity.class); startActivity (намерение); Я отключили мгновенный запуск, затем попробовал. Но это займет больше времени, чтобы Ланч активности. @Override защищены недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.mcall_contacts_activity); Панель = (android.support.v7.widget.Toolbar) findViewById (R.id.toolbar); recycleListFriend = (RecyclerView) findViewById (R.id.recycleListFriend); swipeRefreshLayout = (SwipeRefreshLayout) findViewById (R.id.swipeRefreshLayout); телефонКонтактный = новый телефонКонтактный (); если (панель инструментов! = NULL) {setSupportActionBar (панель инструментов); getSupportActionBar () SETTITLE ( "Пользователи"). getSupportActionBar (). setDisplayHomeAsUpEnabled (истина); getSupportActionBar () setHomeButtonEnabled (истина). } Toolbar.setNavigationOnClickListener (новый View.OnClickListener () {@Override общественный недействительный OnClick (View v) {onBackPressed ();}}); checkContactPermission (); setupAdapter (); phoneContactList = getContacts (McallContactsActivity.this); DatabaseReference исх = FirebaseDatabase.getInstance () getReference () ребенок ( "пользователь")..; ref.addListenerForSingleValueEvent (новый ValueEventListener () {@Override общественного недействительный OnDataChange (DataSnapshot dataSnapshot) {dataSnapshot.getValue () Keyset () итератор () следующий () ToString ();.... Строка ID = ((HashMap) dataSnapshot. GetValue ()). Keyset (). итератор (). следующий (). нанизывать(); collectPhoneNumbers ((Карта) dataSnapshot.getValue ()); } @Override общественного недействительными onCancelled (DatabaseError DatabaseError) {// обработка DatabaseError}}); } Это OnCreate метод MCallContactsActivity в. Нет метод onResume () для этой деятельности
Shifu
1

голосов
1

ответ
73

Просмотры

На финише деятельности в Android

Im пытается интегрировать опрос Tapresearch в моем приложении для Android. Компания предоставляет SDK. SDK дает возможность использовать событие слушатель. Один из слушателей не работает, которая onSurveyModalClosed () `, где обычно приложение возобновляется. Все остальные слушатели прекрасно работает, кроме этого. Когда Tapresearch открытых опросов он запускает эту деятельность: com.tapr.internal.activities.survey.SurveyActivity. Есть ли способ проверить, если эта деятельность была закончена без использования слушателя onSurveyModalClosed ()?
Fat-Bee
1

голосов
1

ответ
62

Просмотры

Как остановить работоспособным, когда я начинаю другую деятельность?

У меня есть Android приложение, которое показывает диалоговое окно, когда значение «1» и показывает диалог несколько раз, пока значение установлено в «0». Исполняемый вызывает обработчик, который начинается диалогом, и Runnable петли с задержкой. Проблема заключается в том, что, когда я иду на другой вид деятельности с той же функцией и вернуться, диалоговое окно уже открыто. Это приводит к тому мое приложение к сбою. Я уже пытаюсь использовать removeMessage и removeCallback, но все еще есть проблемы. Обработчик Обработчик MyHandler = новый Handler () {@Override общественный недействительный handleMessage (сообщ Message) {/ * Диалог * / Окончательный AlertDialog.Builder AlertAlarm_Build; LayoutInflater инфлятор = (LayoutInflater) Settings_Activity.this.getSystemService (Context.LAYOUT_INFLATER_SERVICE); AlertAlarm_Build = новый AlertDialog.Builder (Settings_Activity.this); Окончательный View Disengaged_View; Disengaged_View = inflater.inflate (R.layout.disengage_dialog, NULL); Окончательный AlertDialog PasswordDialog = AlertAlarm_Build.create (); PasswordDialog.show (); Окончательный String [] given_password = новый String [1]; Окончательный логический [] Password_Pass = {ложь}; // откос окончательного RequestQueue requestHander; requestHander = (RequestQueue) Volley.newRequestQueue (getApplicationContext ()); ... // Запрашивать пароль // Нового PasswordDialog.setOnDismissListener (новый DialogInterface.OnDismissListener () {@Override общественного недействительный onDismiss (DialogInterface dialogInterface) {воссоздавать ();}}); }}; Runnable // Runnable окончательного Runnable aMyRunnable = новый Runnable () {@Override общественный недействительный запуск () {RequestQueue requestRun; requestRun = (RequestQueue) Volley.newRequestQueue (getApplicationContext ()); если (New_engaged [0] .equals ( "1") && New_alarm [0] .equals ( "1")) {set_engaged [0] = "1"; myHandler.sendEmptyMessage (0); } Еще {requestRun.add (JOR_SystemCheck); myHandler.postDelayed (это, 5000); }}}; OnStop защищен недействительным OnStop () {super.onStop (); myHandler.removeCallbacksAndMessages (aMyRunnable); myHandler.removeMessages (0); } Ошибка / AndroidRuntime: неустранимая: Основной процесс: com.example.djwiz.eclipse5, ПИД: 17705 android.view.WindowManager $ BadTokenException: Невозможно добавить окно - маркер [email protected] не действует; работает ваша деятельность? на android.view.ViewRootImpl.setView (ViewRootImpl.java:765) в android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:356) в android.view.WindowManagerImpl.addView (WindowManagerImpl.java:92) в android.app. Dialog.show (Dialog.java:330) в com.example.djwiz.eclipse5.Settings_Activity $ 1.handleMessage (Settings_Activity.java:68) в android.os.Handler.dispatchMessage (Handler.java:105) в android.os. Looper.loop (Looper.java:164) при android.app.ActivityThread.main (ActivityThread.java:6541) при java.lang.reflect.Method.
StrongestPower
1

голосов
1

ответ
54

Просмотры

Используйте DoInBackground метод в классе расширения AsyncTask изменить Текст TextView в деятельности, которая не MainActivity

Я студент университета программирования андроид приложения, которое будет отображать сообщения, которые андроид устройство получает через TCP от сервера. Класс ListenForMessage (расширение AsyncTask) открывает соединение TCP и принимает сообщения от сервера в рамках метода DoInBackground. Я могу распечатать сообщения от сервера в журнале, но если я пытаюсь изменить текст TextView, мое приложение аварию. Кажется, я не могу редактировать TextView's тексты из метода DoInBackground, особенно нет, потому что класс не распространяется на деятельность, в которой создается TextView. У меня есть два вида деятельности, и я уверен, выполнение класса «ListenForMessage» в OnCreate второй деятельности «StreamPageMain» (До этого я запускал его изнутри MainActivity, но это не сработало). Я попытался дать метод знать, в котором активности TextView принадлежит, как вы можете увидеть в моем коде, и я создал еще один метод в классе «ListenForMessage», чтобы установить текст, так что это не метод DoInBackground пытается изменить текст, но ничего из этого не работало , Резюме: я пометил место в коде, что идет не так. Что мне нужно сделать, это каким-то образом принимает строку под названием «сообщение» и поместить эту строку в TextView с идентификатором «textView1», которая является частью деятельности «StreamPageMain», а не MainActivity. Я начинаю с этим методом в MainActivity при нажатии кнопки: общественного недействительный поток (Просмотр V) {EditText IPText = (EditText) findViewById (R.id.editTextBox2); // Извлечение IP из EditTextView EditText portText = (EditText) findViewById (R.id.editTextBox3); // Извлечение порта из EditTextView Строка IP = IPText.getEditableText () ToString (). // исправляя формат порта Строка Integer = Integer.parseInt (portText.getEditableText () ToString ().); // исправляя формат Integer Намерения г = новый Intent (MainActivity.this, StreamPageMain.class); i.putExtra ( "IP", IP); i.putExtra ( "порт", порт); startActivity (я); } Вторая активность «StreamPageMain» запускается. Это работает. импорт android.widget.VideoView; общественный класс StreamPageMain расширяет активность {@Override защищен недействительным OnCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.stream_page); Log.d ( "StreamingApp", "OnCreate работает."); // В средней части я реализую видеопоток во вторую деятельность, но это ничего строка IP = getIntent () getStringExtra ( «IP») не влияет. Целое порт = getIntent () getExtras () GetInt ( "порт")..; ListenForMessage listenForMessage = новый ListenForMessage (StreamPageMain.this, IP, порт); listenForMessage.execute (); }} Вы можете видеть, как я пропускание активности StreamPageMain к классу ListenForMessage здесь. Сам класс, подключение и все работает отлично, если я закомментировать отмеченную строку: пакет comn.example.ezio.streamingapp; импорт android.app.Activity; импорт android.os.AsyncTask; импорт android.util.Log; импорт android.widget.TextView; импорт java.io.BufferedReader; импорт java.io.IOException; импорт java.io.InputStreamReader; импорт java.net.Socket; импорт java.net.UnknownHostException; общественный класс ListenForMessage распространяется AsyncTask {общественная активность executingActivity; IP общественности Строка; общественный порт Integer; общественный ListenForMessage (активность деятельность, String IPString, Integer номер_порт) {this.executingActivity = активность; IP = IPString; Порт = номер_порт; } @Override защищена утратившая сила doInBackground (Недействительная ... пустота) {попробуйте (сокет = новый сокет (IP, порт)) {Boolean connectionCancelled = ложь; в то время как (connectionCancelled == FALSE) {InputStreamReader ISR = новый InputStreamReader (socket.getInputStream ()); BufferedReader ш = новый BufferedReader (ISR); Строка сообщения = br.readLine (); Log.d ( "StreamingApp", "говорит Сервер:" + сообщение); setTextOfTextView (сообщение); // !!!! Это оно. На этой линии она // сбой, независимо от того, как я положил его. // Делает это прямо здесь или в // дополнительного метода, как сейчас. }} Поймать (UnknownHostException е) {e.printStackTrace (); } Поймать (IOException е) {e.printStackTrace (); } Возвращать нуль; } Общественного недействительными setTextOfTextView (Строка textOfTextView) {TextView textView1 = executingActivity.findViewById (R.id.textView1); textView1.setText ( "Сервер говорит:" + textOfTextView); }} Я все-таки новичок в Java и мои знания не выходит далеко за пределами того, что я писал здесь. Пожалуйста, простите ошибки форматирования и не-лучшие практики, я счастлив учиться и совершенствоваться! На этой линии она // сбой, независимо от того, как я положил его. // Делает это прямо здесь или в // дополнительного метода, как сейчас. }} Поймать (UnknownHostException е) {e.printStackTrace (); } Поймать (IOException е) {e.printStackTrace (); } Возвращать нуль; } Общественного недействительными setTextOfTextView (Строка textOfTextView) {TextView textView1 = executingActivity.findViewById (R.id.textView1); textView1.setText ( "Сервер говорит:" + textOfTextView); }} Я все-таки новичок в Java и мои знания не выходит далеко за пределами того, что я писал здесь. Пожалуйста, простите ошибки форматирования и не-лучшие практики, я счастлив учиться и совершенствоваться! На этой линии она // сбой, независимо от того, как я положил его. // Делает это прямо здесь или в // дополнительного метода, как сейчас. }} Поймать (UnknownHostException е) {e.printStackTrace (); } Поймать (IOException е) {e.printStackTrace (); } Возвращать нуль; } Общественного недействительными setTextOfTextView (Строка textOfTextView) {TextView textView1 = executingActivity.findViewById (R.id.textView1); textView1.setText ( "Сервер говорит:" + textOfTextView); }} Я все-таки новичок в Java и мои знания не выходит далеко за пределами того, что я писал здесь. Пожалуйста, простите ошибки форматирования и не-лучшие практики, я счастлив учиться и совершенствоваться!
Peter Sagichnit
1

голосов
0

ответ
425

Просмотры

Эспрессо не удалось запустить другую деятельность

Эспрессо не смог найти вторую активность. Я пытаюсь из простой тест с Espresso, призывающую новый вид деятельности, но он всегда терпит неудачу с бревенчатыми ниже ошибки. Что мне делать правильно? Это тестовый класс общественного класса LoginActivityTest {@Rule общественного ActivityTestRule mActivityTestRule = новый ActivityTestRule (LoginActivity.class); частный LoginActivity loginActivity = NULL; Instrumentation.ActivityMonitor монитор = getInstrumentation () addMonitor (SecondActivity.class.getName (), нулевой, ложно). @Before общественной недействительная нАлАдкА () бросает исключение {loginActivity = mActivityTestRule.getActivity (); .} @Test общественный недействительный writeTestCase () {Espresso.onView (withId (R.id.email_sign_in_button)) выполняет (нажмите ()); Активность secondActivity = getInstrumentation () waitForMonitorWithTimeout (монитор, 5000). assertNotNull (secondActivity); Espresso.onView (withId (R.id.email_sign_in_button)) проверить (матчи (withId (R.id.first_number))). @After общественной пустоты Teardown () бросает исключение {loginActivity = NULL; }} Это журнал ошибок java.lang.RuntimeException: деятельность не найдено. Вы т начать деятельность по телефону getActivity () или startActivitySync или подобное? на android.support.test.espresso.base.RootViewPicker.waitForAtLeastOneActivityToBeResumed (RootViewPicker.java:169) в android.support.test.espresso.base.RootViewPicker.get (RootViewPicker.java:83) в android.support.test.espresso .ViewInteractionModule.provideRootView (ViewInteractionModule.java:77) при android.support.test.espresso.ViewInteractionModule_ProvideRootViewFactory.proxyProvideRootView (ViewInteractionModule_ProvideRootViewFactory.java:
kehinde
1

голосов
1

ответ
31

Просмотры

Ошибка при переходе модели от вида деятельности на другой

Поэтому я следую Coding с обучающим Митчем на Firestore и я меняю его, чтобы соответствовать моим потребностям знакомства. Я строю TO-DO App (Это мой первый когда-либо приложение / проект) Сейчас я пытаюсь сделать вторую деятельность для того, чтобы просмотреть, обновления и удаления выбранной задачи (Эта деятельность ViewTaskActivity). Я застрял при попытке передать текущую задачу из MainActivity к ViewTaskActivity. Когда я пытаюсь вызвать метод переменной задачи, он дает мне ошибку. Вот код: Задача Модель: пакет dev.raphdl.firebasepractice.models; импорт ... @IgnoreExtraProperties общественного класса Task реализует Parcelable {личное название String; частное содержание строк; частная @ServerTimestamp Дата Отметка времени; частная строка note_id; общественная задача (String название, содержание String, Date метка время, Строка note_id) {this.title = название; this.content = содержание; this.timestamp = метка времени; this.note_id = note_id; } Общественные задачи () {} частная задача (посылки в) {названия = in.readString (); содержание = in.readString (); note_id = in.readString (); } Общественности статический окончательный Создателя СОЗДАТЕЛЬ = новый Создатель () {@Override общественных задачи createFromParcel (посылки в) {возвращают новую задачу (в); } @Override общественной задачи [] newArray (размер INT) {вернуть новый Task [размер]; }}; Строка GetTitle общественности () {возвращение название; } Общественного недействительными SetTitle (строка заголовка) {this.title = название; } Строка общественного getContent () {содержание возврата; } Общественного недействительными setContent (содержание String) {this.content = содержание; } Общественности Дата getTimestamp () {возвращение временной метки; } Общественного недействительный setTimestamp (Дата метка время) {this.timestamp = метка время; } Строка общественного getNote_id () {вернуться note_id; } Общественного недействительными setNote_id (Строка note_id) {this.note_id = note_id; } @Override общественного ИНТА describeContents () {возвращает 0; } @Override общественная недействительная writeToParcel (посылки посылка, INT I) {parcel.writeString (название); parcel.writeString (содержание); parcel.writeString (note_id); }} MainActivity пакет dev.raphdl.firebasepractice; импорт ... общественный класс MainActivity расширяет AppCompatActivity реализует View.OnClickListener, IMainActivity {@Override общественного недействительный updateTask (конечная целевая mTask) {DocumentReference docRef = дб .collection ( "пользователи") .document (mAuth.getCurrentUser (). GetUid ()) .collection ( "задача") .document (mTask.getNote_id ()); docRef.update ( "название", mTask.getTitle (), "содержание", mTask.getContent ()). addOnCompleteListener (новый OnCompleteListener () {@Override общественного недействительный OnComplete (@NonNull com.google.android.gms.tasks. задача Task) {если (task.isSuccessful ()) {makeSnackBarMessage ( "Обновление задачи"); mAdapter.updateTask (mTask);} еще {makeSnackBarMessage ( "Не удалось выполнить обновление, проверка журналов"); }}}); } @Override общественного недействительный DeleteTask (конечная целевая mTask) {DocumentReference docRef = дб .collection ( "пользователи") .document (mAuth.getCurrentUser (). GetUid ()) .collection ( "задача") .document (mTask.getNote_id ( )); docRef.delete (). addOnCompleteListener (новый OnCompleteListener () {@Override общественная пустота задача OnComplete (@NonNull com.google.android.gms.tasks.Task) {если (task.isSuccessful ()) {makeSnackBarMessage ( "Task Исключено" ); mAdapter.deleteTask (mTask);} еще {makeSnackBarMessage ( "Не удалось удалить, Проверка журналов");}}}); } @Override общественные недействительный onTaskSelected (Задача mTask) {viewTaskActivity (mTask); } Частная пустота viewTaskActivity (задача Задачи) {Намерение Намерение = новое Намерение (это, ViewTaskActivity.class); Bundle пучок = новый Bundle (); bundle.putParcelable ( "Задача", задача); intent.putExtras (расслоение); startActivity (намерение); }} MainActivityInterface пакет dev.raphdl.firebasepractice; импорт dev.raphdl.firebasepractice.models.Task; Интерфейс IMainActivity общественных {недействительный createNewTask (строка заголовок, содержание строки); аннулированию onTaskSelected (Задача mTask); аннулированию updateTask (Задача mTask); аннулированию DeleteTask (Задача mTask); } ViewTaskActivity пакет dev.raphdl.firebasepractice; импорт ... общественный класс ViewTaskActivity расширяет AppCompatActivity реализует View. OnClickListener {частное IMainActivity mIMainActivity; частные задачи mTask; @Override защищены недействительный OnCreate (@Nullable Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_view_task); Пачка расслоение = getIntent () getExtras (). mTask = bundle.getParcelable ( "Задача"); } @Override общественного недействительными OnClick (View v) {переключатель (v.getId ()) {случай R.id.save_text_view:. {Строка название = titleEditText.getText () ToString (); Содержание: String = contentEditText.getText () ToString (). если (mTask! = NULL) {Toast.makeText (это, "mTask не NULL", Toast.LENGTH_SHORT) .show (); Log.d (TAG, "OnClick: mTask не NULL"); mTask.setTitle (название); mTask.setContent (содержание); // Это линия, которая вызывает ошибку mIMainActivity.updateTask (mTask); основная деятельность(); } Еще {Log.d (TAG, "OnClick: mTask NULL"); Toast.makeText (это, "mTask NULL", Toast.LENGTH_SHORT) .show (); } перерыв; } Случай R.id.delete_text_view: {mIMainActivity.deleteTask (mTask); основная деятельность(); перерыв; }}} Частная пустота mainActivity () {Намерение Намерения = новое Намерение (это, MainActivity.class); Toast.makeText (это, "MainActivity", Toast.LENGTH_SHORT) .show (); startActivity (намерение); android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767) К сожалению для больших блоков кода. FYI: приложение дает мне ту же ошибку при попытке удалить задачу я все еще новичок, так что это может быть мне просто забыть что-то. Спасибо за чтение этого
RaphDL
1

голосов
2

ответ
49

Просмотры

Можно ли привязать OnClick к конкретной деятельности?

Я пытаюсь построить одно приложение окна. У меня есть один макет (один XML-файл) и два вида деятельности. Кнопка на первую активности начинается второй активность, которая является бесконечной викториной. Тогда вторая активность изменяет некоторые из представлений (отображает ряд вопросов). Кнопка цель состоит в том, чтобы закончить вторую деятельность, если это вверх, а затем запустить его снова. Проблема заключается в том, когда я нажимаю на кнопку второй раз, приложение аварии. За мое понимание, это потому, что он не может найти метод OnClick во втором коде деятельности. Это сообщение об ошибке: java.lang.IllegalStateException: Не удалось найти метод startQuiz (View) в родительском или предком контексте для андроида: OnClick атрибут, определенный на вид класса android.support.v7.widget.AppCompatButton с идентификатором «buttonStart» Я ищу способ, чтобы связать OnClick этой кнопки только основной деятельности. Является ли это возможным? Буду признателен за любую помощь. Моя кнопка XML: Моя основная деятельность: / ** Вызывается, когда пользователь нажимает кнопку Пуск * / общественного недействительными startQuiz (View вид) {finishActivity (); initQuiz (); } Общественного недействительный initQuiz () {Намерение Намерения = новое Намерение (это, QuizActivity.class); startActivity (намерение); } Общественного недействительный finishActivity () {Намерение Намерения = новое Намерение ( "finish.quiz"); sendBroadcast (намерение); } Моя вторая активность (QuizActivity): класс QuizActivity общественности распространяется AppCompatActivity {TextView textQuestion = NULL; EditText textAnswer = NULL; @Override защищены недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); // зарегистрироваться, чтобы закончить широковещательное сообщение IntentFilter фильтра = новый IntentFilter (); filter.addAction ( "finish.quiz"); registerReceiver (broadcast_reciever, фильтр); // доступ структура главной активности setContentView (R.layout.activity_main); // Основные виды разметки текста ConstraintLayout layoutChoose = findViewById (R.id.constraintLayoutQuiz); layoutChoose.setVisibility (View.VISIBLE); textQuestion = (TextView) findViewById (R.id.textViewQuestion); textAnswer = (EditText) findViewById (R.id.editTextAnswer); // запускаем тест startQuizSequence (); } // зарегистрировать для трансляции, чтобы закончить эту активность BroadcastReceiver broadcast_reciever = новый BroadcastReceiver () {@Override общественного недействительный OnReceive (Контекст arg0, Намерение намерения) {// закончить отделку активности (); }};
Oshri
1

голосов
2

ответ
61

Просмотры

Выход во второй активности не работает

Я работаю над распознаванием речи на Android Studio. MainActivity.java: класс MainActivity общественности расширяет AppCompatActivity {личное TextView voiceInput; частный TextView speakButton; частное окончательное ИНТ REQ_CODE_SPEECH_INPUT = 100; @Override защищены недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); voiceInput = (TextView) findViewById (R.id.voiceInput); speakButton = (TextView) findViewById (R.id.btnSpeak); speakButton.setOnClickListener (новый View.OnClickListener () {@Override общественного недействительными OnClick (View v) {askSpeechInput ();}}); } // Отображение Google речевого ввода диалогового личного недействительного askSpeechInput () {Intent намерение = новый Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra (RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra (RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault ()); intent.putExtra (RecognizerIntent.EXTRA_PROMPT, "Привет говорить что-то"); попробуйте {startActivityForResult (намерение, REQ_CODE_SPEECH_INPUT); } улов (ActivityNotFoundException а) {}} // Получение входного речевой @Override защищены недействительный onActivityResult (интермедиат requestCode, Int ResultCode, Намерение данные) {super.onActivityResult (requestCode, ResultCode, данные); переключатель (requestCode) {случай REQ_CODE_SPEECH_INPUT: {если (! ResultCode == RESULT_OK && NULL = данные) {результат ArrayList = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); voiceInput.setText (result.get (0)); } перерыв; }}}} В том, что вы можете увидеть, что последняя часть для выхода отвечает: // Прием речевой ввод @Override защищен недействительным onActivityResult (интермедиат requestCode, внутр ResultCode, Намерение данные) {super.onActivityResult (requestCode, ResultCode, данные) ; переключатель (requestCode) {случай REQ_CODE_SPEECH_INPUT: {если (! ResultCode == RESULT_OK && нуль = данные) {результат ArrayList = data.getStringArrayListExtra (RecognizerIntent. EXTRA_RESULTS); voiceInput.setText (result.get (0)); } перерыв; }}} Мой вопрос Теперь я создал вторую деятельность и хотел получить выход там, поэтому я скопировал эти блоки кода выше и приклеил его. Это не сработало. Как я могу позволить выход моего разговорного входа будет во второй активности? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и извините за тупой вопрос, я думаю, что решение очень легко, но я не мог оштрафовать их! Как я могу позволить выход моего разговорного входа будет во второй активности? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и извините за тупой вопрос, я думаю, что решение очень легко, но я не мог оштрафовать их! Как я могу позволить выход моего разговорного входа будет во второй активности? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и извините за тупой вопрос, я думаю, что решение очень легко, но я не мог оштрафовать их!
dsadsdasdas
1

голосов
4

ответ
46

Просмотры

How to provide back navigation in a sub-flow with activities

I have Activities A, B, C which between the user can navigate. Activity B also provides a sub-flow like (B1, B2, B3). When the user completes the subflow, he is sent back to B with some data. What intent flags or launch modes should I use to provide back navigation between A - B - C, and between B1 - B2 - B3. But also clear/finish this sub flow when returning to B with some data passed in the intent? I have tried adding FLAG_ACTIVITY_CLEAR_TOP & FLAG_ACTIVITY_SINGLE_TOP to the sub activities (B1, B2, B3) but that didn't work.
Tim
1

голосов
2

ответ
84

Просмотры

То же панель инструментов для всех видов деятельности - Что-то я пропускаю

То, что я хочу: Я хочу сохранить ту же панель инструментов для всех моих действий. То, что я пробовал: я сделал BaseActivity и у меня панель инструментов в нем. Я расширение других мероприятий по BaseActivity. В чем проблема: Когда я запустить приложение. Я не найти панель инструментов на другие виды деятельности. Ниже мой код. BaseActivity.java общественного класса BaseActivity расширяет AppCompatActivity {@Override защищен недействительным OnCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_base); Панель инструментов = findViewById (R.id.toolbar); setSupportActionBar (панель инструментов); } @Override общественного логический onCreateOptionsMenu (меню Menu) {getMenuInflater () надуваться (R.menu.toolbar_menu, меню). возвращает истину; } @Override общественного логический onOptionsItemSelected (MenuItem элемент) {переключатель (item.getItemId ()) {случай R.id.menu_lang_english: Toast.makeText (это, "английский", Toast.LENGTH_SHORT) .show (); перерыв; случай R.id.menu_lang_french: Toast.makeText (это, "французский", Toast.LENGTH_SHORT) .show (); перерыв; } Вернуть super.onOptionsItemSelected (пункт); }} Activity_base.xml MainActivity.java общественного класса MainActivity расширяет BaseActivity {@Override защищен недействительным OnCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); }} стили activity_main.xml.
Maulik Dodia
1

голосов
0

ответ
36

Просмотры

задача в фоновом режиме, даже после того, как деятельность закрыта

makeText (mContext, "загрузка видео", Toast.LENGTH_SHORT) .show (); Строка категории = выбрана; Строка ссылки = mlinks.getText () ToString (). uploadNewVideo (GetString (R.string.new_photo), описание, VIDEOCOUNT, категория, синтаксический анализ, ссылки); Намерение Намерение = новое Намерение (mContext, HomeActivity.class); mContext.startActivity (намерение); ((Активность) mContext) .finish (); }}); } Общественного недействительный uploadNewVideo (String фототип, конечное описание строки, количество INT, последняя категория String, окончательный Uri imgUrl, конечные ссылки String) {Log.d (TAG, "uploadNewPhoto: attemting загрузить новую фотографию"); = Пути файлы новых пути файлы () пути файлы; если (== синтаксического анализа NULL) {Toast.makeText (mContext, "Пожалуйста, выберите изображение", Toast.LENGTH_SHORT) .show (); } Еще {StorageMetadata метаданные = новый StorageMetadata.Builder () .setContentType ( "видео / MP4") .build (); если (photoType.equals (mContext.getString (R.string.new_photo))) {Log.d (TAG, "uploadNewPhoto: загрузки фото"); Строка идентификатор_пользователя = FirebaseAuth.getInstance () getCurrentUser () getUid ()..; StorageReference storageReference = mStorageReference.child (filePaths.FIREBASE_VIDEO_STORAGE + "/" + идентификатор_пользователя + "/ видео" + (кол + 1)); UploadTask uploadTask = NULL; mcancelButton.setOnClickListener (новый View.OnClickListener () {@Override общественного недействительными OnClick (View v) {mStoragetask.cancel ();}}); // mStoragetask = uploadTask = storageReference.putBytes (байт); mStoragetask = uploadTask = storageReference.putFile (синтаксический анализ, метаданные); mStoragetask = uploadTask.addOnSuccessListener (новый OnSuccessListener () {@Override общественного недействительными OnSuccess (UploadTask.TaskSnapshot taskSnapshot) {Ури firebaseUrl = taskSnapshot.getDownloadUrl (); // firebaseUrl.toString (); Toast.makeText (mContext, «загрузить фото успеха и », Toast.LENGTH_SHORT) .show (); mFirebaseMethods.AddVideoToDatabase (описание, firebaseUrl.toString (), категория, ссылки); намерение намерение = новый Intent (mContext, HomeActivity.class); mContext.startActivity (намерение); (( активность) mContext) .finish (); }}) AddOnFailureListener (новый OnFailureListener () {@Override общественного недействительными OnFailure (@NonNull Exception е) {Log.d. (TAG, "OnFailure: загрузить фото обанкротиться"); Toast.makeText (mContext, "Не удалось загрузить фотографию" + e.getMessage (), Toast.LENGTH_SHORT) .show ();.}}) addOnProgressListener (новый OnProgressListener () {@Override общественного недействительными OnProgress (UploadTask.TaskSnapshot taskSnapshot) {двойной прогресс = (100 * taskSnapshot.getBytesTransferred ()) / taskSnapshot.getTotalByteCount (); progressBar.setProgress ((INT) прогресс);}}); }}} addOnFailureListener (новый OnFailureListener () {@Override общественного недействительными OnFailure (@NonNull Exception е) {Log.d (TAG, "OnFailure: загрузить фото обанкротиться"); Toast.makeText (mContext, "Не удалось загрузить фотографию" + e.getMessage ( ), Toast.LENGTH_SHORT) .show ();.}}) addOnProgressListener (новый OnProgressListener () {@Override общественного недействительными OnProgress (UploadTask.TaskSnapshot taskSnapshot) {двойной прогресс = (100 * taskSnapshot.getBytesTransferred ()) / taskSnapshot.getTotalByteCount (); progressBar.setProgress ((ИНТ) прогресс);}}); }}} addOnFailureListener (новый OnFailureListener () {@Override общественного недействительными OnFailure (@NonNull Exception е) {Log.d (TAG, "OnFailure: загрузить фото обанкротиться"); Toast.makeText (mContext, "Не удалось загрузить фотографию" + e.getMessage ( ), Toast.LENGTH_SHORT) .show ();.}}) addOnProgressListener (новый OnProgressListener () {@Override общественного недействительными OnProgress (UploadTask.TaskSnapshot taskSnapshot) {двойной прогресс = (100 * taskSnapshot.getBytesTransferred ()) / taskSnapshot.getTotalByteCount (); progressBar.setProgress ((ИНТ) прогресс);}}); }}} progressBar.setProgress ((ИНТ) прогресс); }}); }}} progressBar.setProgress ((ИНТ) прогресс); }}); }}}
new learner
1

голосов
0

ответ
86

Просмотры

Что такое ATEActivity в Android?

Я учусь андроид чтения с открытым исходным кодом коды. Я читаю «лесоматериал музыкальный проигрыватель» на Github. вот адрес timper музыкальный проигрыватель Когда вы загружаете его, вы будете иметь «BaseActivity» в «com.naman14.timber.activities» папку. Он расширяет «ATEActivity», который проходит «AppCompatActivity.» Когда вы читаете код «ATEActivity.class» на Android Studio, вы будете иметь сообщение «декомпилированные .class файл, байт-код версии: 51.0 (Java 7)» Мой вопрос почему «BaseActivity» расширяет «ATEActivity», вместо того, "AppCampatActivity" напрямую? В чем разница между простирающимся «AppCompatActivity» через «ATEActivity» и распространяя его непосредственно ?? Для чего это?? Там нет никакого документа об этом на Android разработчиков веб-сайта.
Harry
1

голосов
0

ответ
99

Просмотры

Можно ли иметь 2 действия в проекте Delphi Android, где же вторая активность показывает простую форму после запуска?

Можно ли иметь одну стандартную активность (com.embarcadero.firemonkey.FMXNativeActivity) и другой FMX на основе деятельности в рамках одного проекта Delphi Android, где же вторая активность показывает простую форму после запуска?
pudnivec74
1

голосов
3

ответ
51

Просмотры

Основные связи между двумя фрагментами и установить идентификатор для фрагмента на классе

У меня есть одна деятельность - MainActivity. В рамках этой деятельности, у меня есть два фрагмента, оба из которых я создал декларативно в XML. Я пытаюсь передать строку ввода текста пользователя в фрагменте А в текстовом виде в фрагменте B. Однако это оказывается очень трудно. Кто-нибудь знает, как я мог бы достичь этого? Я знаю, что фрагмент может получить ссылку на свою деятельность, используя getActivity (). Поэтому я предполагаю, что я хотел бы начать там? Как я могу установить идентификатор для фрагмента адаптера я использую библиотеку для слайдера: https://github.com/stepstone-tech/android-material-stepper
ali asadi
1

голосов
2

ответ
71

Просмотры

How to show saved data inside multiple fragments?

Intro Hi guys, currently I am working on a question-form app. In the MainActivity users can add an item after which a QuestionListActivity opens. Clicking on the first item in that list opens the Main2Activity. This activity exists of 3 fragments which all include one question (Edittext). The data implemented by the user in the fragments is saveable. After answering and saving questions, each form appears in the MainActivity as a list. Clicking on these items brings them back to the QuestionListActivity after which clicking on the first item should open the fragments again with their saved data already shown. Problem After saving the fragments, the string to the MainActivity is succesfull, eg. the Title as set by saving the first fragment (which asks for the name of the form). Therefore, the saving to my Utilities class was succesfull. The problem is, clicking on a saved item in the MainActivity and then on the first item in the QuestionList to open the Main2Activity (fragments with questions), opens the fragments but with empty EditText fields where the saved data should be shown to view them or make changes. Question How is it possible to show the saved data inside multiple fragments instead of in just one activity and what am I doing wrong? And is it recommended to use the same format when using 8 questions (one fragment per question)? (I couldn't find the right question to use on StackOverFlow, because almost every question about this subject is about the instance state ed. but this isn't a problem in my project) Codes Here is my Main2Activity and one fragment(Frag1). The other fragment I have setup the same way as Frag1. I am probably doing something wrong in the fragment java classes but I am unsure what. Hopefully, someone can help me. public class Main2Activity extends AppCompatActivity { private SectionsPagerAdapter mSectionsPagerAdapter; private ViewPager mViewPager; private String mNoteFileName; private Note mLoadedNote; private EditText title, question2, question3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); title = findViewById(R.id.note_et_title1); question2 = findViewById(R.id.note_et_question2); question3 = findViewById(R.id.note_et_question3); String title; String question2 ; String question3; mNoteFileName = getIntent().getStringExtra("NOTE_FILE"); if(mNoteFileName !=null && !mNoteFileName.isEmpty()) { mLoadedNote = Utilities.getNoteByName(this, mNoteFileName); if(mLoadedNote !=null) { title = mLoadedNote.getTitle(); question2 = mLoadedNote.getQuestion2(); question3 = mLoadedNote.getQuestion3(); } } List fragments = new ArrayList(); fragments.add(Frag1.newInstance(title)); fragments.add(Frag2.newInstance(question2)); fragments.add(Frag3.newInstance(question3)); mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(),fragments); mViewPager = (ViewPager) findViewById(R.id.container); mViewPager.setAdapter(mSectionsPagerAdapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager)); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_note_new, menu); return true; } private void saveNote() { Note note; if(title.getText().toString().trim().isEmpty()){ Toast.makeText(this, "Please enter a title", Toast.LENGTH_SHORT).show(); } if(mLoadedNote ==null) { note = new Note(System.currentTimeMillis(), title.getText().toString(), question2.getText().toString(), question3.getText().toString()); }else { note = new Note(mLoadedNote.getDateTime(), title.getText().toString(), question2.getText().toString(), question3.getText().toString()); } if (Utilities.saveNote(this, note)){ Toast.makeText(this, "saved", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "not enough space", Toast.LENGTH_SHORT).show(); } finish(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_note_save: saveNote(); break; } return true; } public static class PlaceholderFragment extends Fragment { private static final String ARG_SECTION_NUMBER = "section_number"; public PlaceholderFragment() { } 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; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main2, container, false); TextView textView = (TextView) rootView.findViewById(R.id.section_label); textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); return rootView; } } public class SectionsPagerAdapter extends FragmentPagerAdapter { private List mFragments; public SectionsPagerAdapter(FragmentManager fm, List fragments) { super(fm); mFragments = fragments; } @Override public Fragment getItem(final int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } } } public class Frag1 extends Fragment { private static final String EXTRA_TEXT = "text"; private EditText mEtTitle; public static Frag1 newInstance(String message) { Bundle args = new Bundle(); args.putString(EXTRA_TEXT, message); Frag1 fragment = new Frag1(); fragment.setArguments(args); return fragment; } public Frag1 () { } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.frag1_layout, container, false); mEtTitle = (EditText) view.findViewById(R.id.note_et_title1); Bundle bundle = getArguments(); if (bundle != null) { mEtTitle.setText(bundle.getString(EXTRA_TEXT)); } return view; } }
pr0gram
1

голосов
2

ответ
44

Просмотры

Вызов сети апи так же, как активность отделки

У меня есть экран предпочтений в моем приложении, и я хочу, чтобы сохранить пользовательские настройки на сервере, но я не хочу кнопку обновления в настройках, я надеялся сделать это обновление апи вызов, когда активность отделки, может быть, я может вызвать АФИ в OnPause (), проблема в том, если апи занимает больше времени, чем ожидалось, чтобы вернуться тогда я буду иметь сетевой вызов выполняется без активности, что в моей общих знаний является утечка памяти. Если я пытаюсь иметь этот сетевой вызов в главном потоке и вызов занимает слишком много времени я получу ANR. Как я могу добиться такого поведения в моем приложении. Я использую retrofit2 с rxjava2 сделать API вызовов.
Saurabh Mishra
1

голосов
3

ответ
44

Просмотры

Кнопка Activity в До перехода к различным видам деятельности

У меня есть активность MyActivity со стандартной Up кнопки реализованного в панели инструментов (левая стрелка на верхнем левом углу экрана). Эта деятельность является уникальной в том, что пользователь может перейти к нему из нескольких мероприятий в моем приложении. Мне нужно это вверх кнопка, чтобы направить на деятельность, что пользователь вышел из (таких же поведения, как кнопки Android Назад). Вместо этого, он всегда направляет обратно в домашней деятельности, даже если пользователь не сразу пришел оттуда, из-за этого кода в AndroidManifest.xml:
freezefry
1

голосов
2

ответ
51

Просмотры

OnDestroy не срабатывает, когда мы очищаем стек деятельности, используя FLAG_ACTIVITY_NEW_TASK

В андроиде, Давайте предположим, что у меня есть ниже • Деятельность А -> активность B -> C активности -> Активность D В некоторых случаях, я должен напрямую перейти от деятельности D на активность А (Пример: Выход сценарий). В таком случае, я использую метод ниже, чтобы очистить backstack и перейти к деятельности А. Это не что иное, как убийство и снова откройте приложение. // Перейти к LoginActivity.java Intent намерения = новый Intent (это, LoginActivity.class); intent.addFlag (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity (намерение); Конец(); Это абсолютно нормально работает! Нет сомнения в этом. Что мне теперь нужно? Когда я перейти от деятельности D А (с использованием FLAG_ACTIVITY_NEW_TASK.) Я хотел бы ожидать метод OnDestroy () деятельности D, C, B для выполнения. Но это не в настоящее время удара / запуска. Почему я ожидал OnDestroy метод для вызова? Я должен был бы вызвать одну TrackEvent (разрегистрировали) метод от всех видов деятельности при очистке стека обратно. Например: От активность D, C и B. Таким образом, я ожидать, что метод OnDestroy для вызова (или любой другой метод также отлично). Пожалуйста помогите мне по этому поводу?
Anees Deen
1

голосов
1

ответ
217

Просмотры

Android Webview - Uncaught ReferenceError в местном яваскрипте исполнения

Привет всем и спасибо за вашу помощь! Я хочу построить Android WebView App, он использует HTML + CSS + JavaScript, без библиотеки, кроме Highcharts один. Он прекрасно работает кросс-браузер, когда я пытаюсь его с файлами на сервере. Я хочу иметь столько файлов, сколько возможно, работающих локально на стороне клиента: в HTML, CSS, все активы (изображения) и JavaScript коды находятся в приложении, оставив только файлы PHP на сервере (Логин, зарегистрировались и т.д.). К сожалению, когда я пытаюсь мое приложение на Android, я получаю ошибки на моей яваскрипте функции defeinitions, например: 12-27 10: 04: 42,075 17798-17798 / com.wifcompanion.wifcompanion D / WiFCompanionConsole: неперехваченный ReferenceError: BodyReset не определен - из строки 22 файла: ///android_asset/wifmobile.html Моей первой интуиции, что .js файлы не были загружены надлежащим образом. Так что я положил весь код JS непосредственно под тегом в wifmobile.html. Но безрезультатно. Более того, кажется, некоторые функции найдены (например, NewSignIn () при нажатии на кнопку входа на первой странице), а другие нет (например, PopupSave (), которая является функцией называется в NewSignIn ()). Ближайший вопрос, который я мог бы найти на StackOverflow здесь, но не имеет никакого ответа: JavaScript не работает с андроид WebView, Uncaught ReferenceError MainActivity: пакет com.wifcompanion.wifcompanion; импорт android.support.v7.app.AppCompatActivity; импорт android.os.Bundle; импорт android.annotation.TargetApi; импорт android.util.Log; импорт android.webkit.ConsoleMessage; импорт android.webkit.WebChromeClient; импорт android.webkit.WebView; импорт android.webkit.WebViewClient; общественный класс MainActivity расширяет AppCompatActivity {частного WebView m_webview = NULL; @Override общественного недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); // Схема нагрузки setContentView (R.layout.activity_main); // Создать WebView m_webview = новый WebView (это); // Добавить WebView в активность m_webview = (WebView) findViewById (R.id.webviewWIF); m_webview.setWebChromeClient (новый WebChromeClient ()); m_webview.loadUrl ( "Файл: ///android_asset/wifmobile.html"); // Logcat и консоль m_webview.setWebChromeClient (новый WebChromeClient () {общественного логический onConsoleMessage (ConsoleMessage см) {Log.d ( "WiFCompanionConsole", cm.message () + "- от линии" + cm.lineNumber () + " из "+ см. SourceId ()); возвращает истину; }}); // Обновить старое содержание WebView если (savedInstanceState! = NULL) {m_webview.restoreState (savedInstanceState); } // Создать WebView еще {m_webview.getSettings () setJavaScriptEnabled (истина). INT currentapiVersion = android.os.Build.VERSION.SDK_INT; если (currentapiVersion> = android.os.Build.VERSION_CODES.JELLY_BEAN) {fixNewAndroid (m_webview); }}} // Сохранение состояния веб-просмотра, когда экран поворачивается. @Override защищенных пустот onSaveInstanceState (Пачка outState) {super.onSaveInstanceState (outState); m_webview.saveState (outState); } @TargetApi (16) защищен недействительным fixNewAndroid (WebView WebView) {попробуйте {webView.getSettings () setAllowUniversalAccessFromFileURLs (истина). } Задвижка (NullPointerException е) {}}} wifmobile.html Мир в Flames Companion Вход >> Регистрация >> Забыли пароль? `
Mathieu Martin
1

голосов
2

ответ
67

Просмотры

Метод обратного вызова Отображение для службы в Android

Я разрабатываю фоновую музыку плеер службу с уведомлением в Android. При выполнении кода Сво показывает ошибку CallBack методы из класса обслуживания. Может кто-нибудь, пожалуйста, помогите мне решить эту ошибку? Заранее спасибо. Вот мой код MainActivity: общественный класс MainActivity расширяет AppCompatActivity реализует NotificationService.Callbacks {MediaPlayer MediaPlayer; Намерение serviceIntent; NotificationService notificationService; LinearLayout customMediaController; Кнопка playPauseButton, ForwardButton, rewindButton; SeekBar SeekBar; TextView таймер; ProgressBar погрузчик; ProgressBar ProgressBar; Обработчик обработчик = новый обработчик (); RemoteViews notificationLayout; PendingIntent pendingIntent; NotificationManagerCompat notificationManager; Окончательный Целое число ВЫЗОВ = 0x2; TelephonyManager telephonyManager; PhoneStateListener phoneStateListener; AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener; @Override защищены недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); startBindService (); // начать фоновую службу для управления музыкой, а приложение работает в фоновом режиме initialiseAllView (); // iniatialise всех UI часть handler.postDelayed (работоспособная, 1000); // обновлять ход песни setNotification (); // показать контроллеры в панели уведомлений callHandler (); // для обработки телефонных звонков между audioHandler (); // для обработки другого приложения играет песню между} Runnable работоспособного = нового Runnable () {@Override общественным недействительным запуска () {если (MediaPlayer ! = NULL) {если (mediaPlayer.isPlaying ()) {playPauseButton.setBackgroundResource (R.drawable. ic_pause_circle_outline_black_24dp); } Еще {playPauseButton.setBackgroundResource (R.drawable.ic_play_circle_outline_black_24dp); } UpdateTimer (); } Handler.postDelayed (работоспособный, 1000); }}; // обратный вызов контролеров из уведомления бар @Override общественности ничтожной updateClient (конечная MediaPlayer MediaPlayer) {this.mediaPlayer = Медиаплеер; если (! this.mediaPlayer = NULL) {seekBar.setMax (this.mediaPlayer.getDuration ()); this.mediaPlayer.setOnBufferingUpdateListener (новый MediaPlayer.OnBufferingUpdateListener () {@Override общественного недействительными onBufferingUpdate (MediaPlayer т.пл, Int процента) {progressBar.setSecondaryProgress (в процентах);}}); seekBar.setOnSeekBarChangeListener (новый SeekBar. OnSeekBarChangeListener () {@Override общественные недействительный onProgressChanged (SeekBar SeekBar, внутр прогресс, логическое fromUser) {} @Override общественная недействительный onStartTrackingTouch (SeekBar SeekBar) {} @Override общественный недействительный onStopTrackingTouch (SeekBar SeekBar) {seekMediaPlayer (SeekBar); }}); mediaPlayer.setOnCompletionListener (новый MediaPlayer.OnCompletionListener () {@Override общественного недействительными onCompletion (т.пл. медиаплеера) {mp.seekTo (0); mp.start ();}}); }} Общественного недействительными onForwardButtonClick (View вид) {если (MediaPlayer! = NULL) {mediaPlayer.seekTo (mediaPlayer.getCurrentPosition () + 2000); seekBar.setProgress (MediaPlayer. getCurrentPosition () + 2000); }} Общественного недействительными onRewindButtonClick (View вид) {если (MediaPlayer! = NULL) {mediaPlayer.seekTo (mediaPlayer.getCurrentPosition () - 2000); seekBar.setProgress (mediaPlayer.getCurrentPosition () - 2000); }} Общественного недействительными onPlayPauseClick (View вид) {если (MediaPlayer! = NULL) {если (mediaPlayer.isPlaying ()) {pauseMusic (); } Еще {playMusic (); }}} Общественного недействительными playMusic () {если (MediaPlayer! = NULL) {mediaPlayer.start (); playPauseButton.setBackgroundResource (R.drawable.ic_pause_circle_outline_black_24dp); notificationLayout.setImageViewResource (R.id.playnotify, R.drawable.ic_pause_black_24dp); updateNotification (); }} Общественного недействительными pauseMusic () {если (MediaPlayer! = NULL) {медиаплеера. Пауза(); playPauseButton.setBackgroundResource (R.drawable.ic_play_circle_outline_black_24dp); notificationLayout.setImageViewResource (R.id.playnotify, R.drawable.ic_play_arrow_black_24dp); updateNotification (); }} Частная пустота seekMediaPlayer (SeekBar SeekBar) {mediaPlayer.seekTo (seekBar.getProgress ()); } Частная ServiceConnection mConnection = новый ServiceConnection) {@Override общественные недействительные onServiceConnected (ComponentName имя класс, IBinder обслуживание) {NotificationService.LocalBinder Связующее = (NotificationService.LocalBinder) службы (; notificationService = binder.getServiceInstance (); notificationService.registerClient (MainActivity.this); } @Override общественный недействительный onServiceDisconnected (Имя_компонент arg0) {}}; общественного недействительными startBindService () {serviceIntent = новый Intent (MainActivity.this, NotificationService.class); serviceIntent.putExtra ( "Hello", "Hello"); serviceIntent.setAction (Constants.ACTION.STARTFOREGROUND_ACTION); StartService (serviceIntent); bindService (serviceIntent, mConnection, Context.BIND_AUTO_CREATE); } Общественного недействительными initialiseAllView () {customMediaController = findViewById (R.id.customMediaController); Progressbar = findViewById (R.id.progressBar); Загрузчик = findViewById (R.id.progress); playPauseButton = findViewById (R.id.bttn); ForwardButton = findViewById (R.id.forward); rewindButton = findViewById (R.id.rewind); Таймер = findViewById (R.id.timer); SeekBar = findViewById (R.id.seekBar); } Общественного недействительными updateNotification () {Уведомление customNotification = новый NotificationCompat.Builder (это, "уведомить") .setSmallIcon (R.drawable.ic_music_note_black_24dp) .setStyle (новый NotificationCompat.DecoratedCustomViewStyle ()) .setCustomContentView (notificationLayout) .setOngoing (истина) .setContentIntent (pendingIntent) .build (); notificationManager = NotificationManagerCompat.from (это); notificationManager.notify (1, customNotification); } Общественного недействительными setNotification () {notificationLayout = новые RemoteViews (getPackageName (), R.layout.notification); Намерение notificationIntent = новое Намерение (это, MainActivity.class); notificationIntent.setAction (Constants.ACTION.MAIN_ACTION); notificationIntent.setFlags (Intent. FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); pendingIntent = PendingIntent.getActivity (это, 0, notificationIntent, 0); Намерение playIntent = новое Намерение (это, NotificationService.class); playIntent.setAction (Constants.ACTION.PLAY_ACTION); PendingIntent pendingPlayIntent = PendingIntent.getService (это, 0, playIntent, 0); notificationLayout.setOnClickPendingIntent (R.id.playnotify, pendingPlayIntent); Намерение rewindIntent = новое Намерение (это, NotificationService.class); rewindIntent.setAction (Constants.ACTION.PREV_ACTION); PendingIntent pendingRewindIntent = PendingIntent.getService (это, 0, rewindIntent, 0); notificationLayout.setOnClickPendingIntent (R.id.rewindnotify, pendingRewindIntent); Намерение forwardIntent = новый Intent (это, NotificationService. учебный класс); forwardIntent.setAction (Constants.ACTION.NEXT_ACTION); PendingIntent pendingForwardIntent = PendingIntent.getService (это, 0, forwardIntent, 0); notificationLayout.setOnClickPendingIntent (R.id.forwardnotify, pendingForwardIntent); } Общественного недействительными callHandler () {INT permissionGranted = askForPermission (Manifest.permission.READ_PHONE_STATE, ВЫЗОВ); если (permissionGranted == 1) {phoneStateListener = новый PhoneStateListener () {@Override общественного недействительными onCallStateChanged (INT состояние, строка incomingNumber) {если (состояние == TelephonyManager.CALL_STATE_RINGING) {// Входящий вызов: Приостановить музыку pauseMusic (); } Еще если (состояние == TelephonyManager.CALL_STATE_IDLE) {// Не в вызове: Воспроизведение музыки, если (MediaPlayer = NULL && mediaPlayer.isPlaying (!)!) PlayMusic (); } Еще если (состояние == TelephonyManager.CALL_STATE_OFFHOOK) {// Вызов набора номера, активный или на удержание pauseMusic (); } Super.onCallStateChanged (состояние, incomingNumber); }}; telephonyManager = (TelephonyManager) это .getSystemService (Context.TELEPHONY_SERVICE); если (telephonyManager! = NULL) {telephonyManager.listen (phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); }}} Общественного недействительными audioHandler () {onAudioFocusChangeListener = новый AudioManager. OnAudioFocusChangeListener () {@Override общественный недействительный onAudioFocusChange (интермедиат focusChange) {переключатель (focusChange) {случай AudioManager.AUDIOFOCUS_LOSS: pauseMusic (); перерыв; Случай AudioManager.AUDIOFOCUS_LOSS_TRANSIENT: pauseMusic (); перерыв; }}}; AudioManager AudioManager = (AudioManager) this.getSystemService (Context.AUDIO_SERVICE); // Запрос аудио фокуса для воспроизведения, если (AudioManager! = NULL) {audioManager.requestAudioFocus (onAudioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); }} Общественного недействительными updateTimer () {INT currentPosition = mediaPlayer.getCurrentPosition (); если (currentPosition! = 0) {погрузчик. setVisibility (View.GONE); } SeekBar.setProgress (currentPosition); INT т = currentPosition / 1000; INT мин = т / 60; INT сек = 60% т; если (мин <10) {если (сек <10) {String String = "0" + мин + ": 0" + сек; timer.setText (строка); } Еще {String String = "0" + мин + ":" + сек; timer.setText (строка); }} Если (мин> = 10) {если (сек <10) {String String = мин + ": 0" + сек; timer.setText (строка); } Еще {String String = мин + ":" + сек; timer.setText (строка); }}} частные ИНТ askForPermission (String разрешение, Integer requestCode) {если (ContextCompat.checkSelfPermission (MainActivity.this, разрешение)! = PackageManager.PERMISSION_GRANTED) {// Если мы покажем объяснение? если (ActivityCompat.shouldShowRequestPermissionRationale (MainActivity.this, разрешение)) {// Это вызывается, если пользователь отрицает разрешение перед // В этом случае я просто прошу разрешения снова ActivityCompat.requestPermissions (MainActivity.this, новый String [] {разрешение}, requestCode); }} Еще {возвращает 1; } Возвращает 0; } @Override защищен OnDestroy пустот () {super.onDestroy (); StopService (serviceIntent); если (telephonyManager! = NULL) {telephonyManager.listen (phoneStateListener, PhoneStateListener.LISTEN_NONE); }}} Вот мой код из службы класса: класс NotificationService общественности расширяет деятельность обслуживания {Callbacks; Медиаплеер Медиаплеер; RemoteViews notificationLayout; NotificationManagerCompat notificationManager; частный окончательный IBinder mBinder = новый LocalBinder (); PendingIntent pendingIntent; Строка URL = "https://www.betezda.com/songs/English/audio/God%20is%20here.mp3"; // ваш URL здесь @Override общественного IBinder onBind (Intent намерение) {вернуться mBinder; } // возвращает экземпляр службы общественного класса LocalBinder расширяет подшивку {общественного NotificationService getServiceInstance () {возвращение NotificationService.this; }} // Здесь регистр активности на службу в качестве Callbacks клиента общественного недействительного registerClient (активности деятельности) {this.activity = (Callbacks) деятельность; } @Override общественного ИНТ onStartCommand (окончательное Намерение намерения, окончательные ИНТЫ флагов, окончательное ИНТ startId) {если (MediaPlayer == NULL) {MediaPlayer = новый MediaPlayer (); Строка привет = intent.getExtras () GetString ( "Hello"). Toast.makeText (getApplicationContext (), алло, Toast.LENGTH_LONG) .show (); MediaPlayer = MediaPlayer.create (это, R.raw.cheshta); mediaPlayer.start (); activity.updateClient (MediaPlayer); / * MediaPlayer.prepareAsync (); mediaPlayer.setOnPreparedListener (новый MediaPlayer.OnPreparedListener () {@Override общественных недействительный onPrepared (т.пл. медиаплеер) {mediaPlayer.start (); activity.updateClient (MediaPlayer);}}); mediaPlayer.setOnErrorListener (новый MediaPlayer.OnErrorListener () {@Override общественного логический OnError (MediaPlayer тр, ИНТ, что, внутр за дополнительную плату) {вернуться ложным;}}); * / HandleNotification (намерение); } Еще {handleNotification (намерение); } Вернуть Service.START_STICKY; } Частная пустота handleNotification (Intent намерение) {если (intent.getAction ()! = NULL) {переключатель (intent.getAction ()) {случай Constants.ACTION.STARTFOREGROUND_ACTION: showNotification (); перерыв; Случай Constants.ACTION.PLAY_ACTION: если (mediaPlayer.isPlaying ()) {mediaPlayer.pause (); notificationLayout.setImageViewResource (R.id.playnotify, R.drawable.ic_play_arrow_black_24dp); updateNotification (); } Еще {mediaPlayer.start (); notificationLayout.setImageViewResource (R.id.playnotify, R.drawable.ic_pause_black_24dp); updateNotification (); } перерыв; Случай Constants.ACTION.PREV_ACTION: {INT = mediaPlayer.getCurrentPosition поз (); mediaPlayer.seekTo (поз - 2000); перерыв; } Случай Constants.ACTION.NEXT_ACTION: {INT = mediaPlayer.getCurrentPosition поз (); mediaPlayer.seekTo (позы + 2000); перерыв; }}}} Частный недействительный showNotification () {notificationLayout = новые RemoteViews (getPackageName (), R.layout.notification); Намерение notificationIntent = новое Намерение (это, MainActivity.class); notificationIntent.setAction (Constants.ACTION.MAIN_ACTION); notificationIntent.setFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); pendingIntent = PendingIntent.getActivity (это, 0, notificationIntent, 0); Намерение playIntent = новое Намерение (это, NotificationService.class); playIntent.setAction (Constants.ACTION.PLAY_ACTION); PendingIntent pendingPlayIntent = PendingIntent.getService (это, 0, playIntent, 0); notificationLayout.setOnClickPendingIntent (R.id.playnotify, pendingPlayIntent); Намерение rewindIntent = новое Намерение (это, NotificationService.class); rewindIntent.setAction (Constants.ACTION.PREV_ACTION); PendingIntent pendingRewindIntent = PendingIntent.getService (это, 0, rewindIntent, 0); notificationLayout.setOnClickPendingIntent (R.id.rewindnotify, pendingRewindIntent); Намерение forwardIntent = новое Намерение (это, NotificationService.class); forwardIntent.setAction (Constants.ACTION.NEXT_ACTION); PendingIntent pendingForwardIntent = PendingIntent.getService (это, 0, forwardIntent, 0); notificationLayout.setOnClickPendingIntent (R.id.forwardnotify, pendingForwardIntent); updateNotification (); } @Override общественного недействительный OnDestroy () {super.onDestroy (); notificationManager.cancel (1); } Общественного недействительными updateNotification () {Уведомление customNotification = новый NotificationCompat.Builder (это, "уведомить") .setSmallIcon (R.drawable.ic_music_note_black_24dp) .setStyle (новый NotificationCompat.DecoratedCustomViewStyle ()) .setCustomContentView (notificationLayout) .setOngoing (истина) .setContentIntent (pendingIntent) .build (); notificationManager = NotificationManagerCompat.from (это); notificationManager.notify (1, customNotification); } Открытый интерфейс Обратные вызовы {аннулируются updateClient (MediaPlayer MediaPlayer); }} И его показывающей java.lang.RuntimeException об ошибке: Не удается запустить службу NotificationService @ 870853f Умышленное {акт = startforeground CMP = newmediaplayer / .NotificationService (имеет статистов)}: java.lang.NullPointerException: Попытка вызвать метод интерфейса " аннулированию NotificationService $ Callbacks.updateClient (android.media.MediaPlayer)»на нулевой ссылки на объект в android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3335) в android.app.ActivityThread.-wrap21 (ActivityThread.java) на андроид .app.ActivityThread $ H.handleMessage (ActivityThread.java:1578) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:154) в android.app. ActivityThread.main (ActivityThread.java: Java: 6123) в java.lang.reflect.Method.invoke (Native Method) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:867) в com.android.internal.os.ZygoteInit. Основной (ZygoteInit.java:757) Его показывает ошибку activity.updateClient (MediaPlayer); в Service Class. Метод обратного вызова не получает активности.
user2490234
1

голосов
1

ответ
43

Просмотры

Как добавить плавающую деятельность как «Now Playing Music» в Google Play Music

Пожалуйста, смотрите этот скриншот: Я хочу знать, что это вид деятельности это и как Ii управлять функциональными возможностями, как коснувшись вид и сползать вниз делает вид жить на дне? Я работаю на навигационном ящик, и я хочу, чтобы реализовать его, как в пьесе музыки Google. Кто-нибудь может мне помочь, пожалуйста!
1

голосов
0

ответ
53

Просмотры

Почему в Android классах документации деятельности имеет статический модификатор

Если мы открываем андроиду документации мы увидим, что классы Активности имеют статический модификатор: общественный статический класс MainActivity расширяет активность {...} Я использовал декларирование деятельности без статического модификатора: общественный класс MainActivity расширяет активность {...} Что такое причина использования статического модификатора в классе активности декларации?
Sergey
1

голосов
3

ответ
52

Просмотры

Запуск приложения бросков android.support.v7.app.AppCompatActivity, но с использованием «расширяет активность» работает

Я застрял с этой ошибкой, и я понятия не имею, как ее решить. У меня есть следующий LoginActivity: импорт android.app.Activity; импорт android.content.Intent; импорт android.os.Bundle; импорт android.support.v7.app.AppCompatActivity; импорт android.view.View; импорт android.widget.Button; импорт android.widget.EditText; импорт android.widget.Toast; общественный класс LoginActivity расширяет AppCompatActivity {частного Строки TAG = "LoginActivity"; частное ИНТ REQUEST_SIGNUP = 0; личное имя пользователя EditText; частный EditText пароль; частная кнопка login_btn; INT attempt_counter = 5; @Override общественного недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_login); LoginButton (); } Общественного недействительными LoginButton () {имя пользователя = (EditText) findViewById (R.id.input_email); пароль = (EditText) findViewById (R.id.input_password); login_btn = (кнопка) findViewById (R.id.btn_login); login_btn.setOnClickListener (новый View.OnClickListener () {@Override общественного недействительный OnClick (View v) {если (username.getText (). ToString (). равно ( "пользователь") && password.getText (). ToString (). равна ( "проход")) {Toast.makeText (LoginActivity.this, "Пользователь и пароль правилен", Toast.LENGTH_SHORT) .show (); Намерение намерений = новый Intent ( "MainActivity."); startActivity (намерение); } Еще {Toast.makeText (LoginActivity.this, "пользователя и пароль не правильно", Toast.LENGTH_SHORT) .show (); }}}); }} Как вы можете видеть, им расширение «AppCompactActivity». При запуске приложения, ошибка упоминается в теме отбрасывается. Если я обновить код и изменить его на «расширяет активность», это работает. Почему это происходит? Ниже мой файл манифеста, который я предполагаю, что это не правильно, иначе заявка будет никогда работать даже тогда, когда я использую «расширяет деятельность»: реализация 'com.android.support:design:28.0.0' // Реализация 'com.jakewharton: нож для масла: 8.5.1' // annotationProcessor 'com.jakewharton: компилятор-нож для масла: 8.5.1' «testImplementation JUnit: JUnit: 4.12' 'androidTestImplementation com.android.support.test: бегун: 1.0.2 com.android.support.test.espresso' 'androidTestImplementation: эспрессо-жильный: 3.0.2'} и StackTrace: 2019-02-01 00: 02: 49,522 18723-18723 /? Е / AndroidRuntime: неустранимый: Основной процесс: com.test.proj, ПИД: 18723 java.lang.RuntimeException: Невозможно создать экземпляр активности ComponentInfo {com.test.proj / com.test.proj.LoginActivity}: java.lang. ClassNotFoundException: не нашли класс "com.test.proj.LoginActivity" по пути: DexPathList [[почтовый файл «/data/app/com.test. 0) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1593) в android.os.Handler.dispatchMessage (Handler.java:105) в android.os.Looper.loop (Looper.java:164) в android.app.ActivityThread.main (ActivityThread.java:6541) в java.lang.reflect.Method.invoke (Native Method) в com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767) Подавленное: java.lang.NoClassDefFoundError: Failed разрешение: Landroid / поддержка / v7 / приложение / AppCompatActivity; в java.lang.VMClassLoader.findLoadedClass (Native Method) в java.lang.ClassLoader.findLoadedClass (ClassLoader.java:738) в java.lang.ClassLoader.loadClass (ClassLoader.java:363) ... 12 более Вызванный: Джава.
GomuGomuZoro
1

голосов
1

ответ
23

Просмотры

Как закрыть деятельность от другой деятельности или bottomsheet диалога / fragmenr

Пробовал Использование отделки (), finishAfinity () и намерение флага четких задач. // активность Публичный класс А {общественного недействительными finishActivity () {конец (); }} // активность B общественного класса B {активность а = новый ActivityA (); a.finishActivity (); } Я хочу, чтобы активность А быть закрыта активность B
David Kariuki
1

голосов
1

ответ
37

Просмотры

Распределить данные из текущей деятельности фрагментов на нем

У меня есть деятельность с 2 вкладки / фрагментами. В моей деятельности у меня есть запрос JSON и получить некоторые данные из API. Как я могу распространять данные моих закладок, которые содержат фрагменты в моей текущей деятельности после получения данных? Код: защищенный аннулируются OnCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_detail); mInflater = LayoutInflater.from (это); Очередь = Volley.newRequestQueue (это); картинка = (картинка) getIntent () getSerializableExtra ( "картинка"). pictureId = picture.getPictureId (); setUpUI (); getPictureDetails (pictureId); tabLayout = findViewById (R.id.detailtabs); ViewPager = findViewById (R.id.detailviewpager); Адаптер = новый ViewPagerAdapter (getSupportFragmentManager ()); adapter.AddFragment (новые FragmentDetails (), "Подробности"); adapter.AddFragment (новые FragmentReviews (), "Отзывы"); viewPager.setAdapter (адаптер); tabLayout.setupWithViewPager (ViewPager); }
1

голосов
1

ответ
2k

Просмотры

UML Диаграмма деятельности: решение ветвь заканчивается вся деятельность

Мне было интересно, если есть способ, чтобы изобразить, что на деятельность, которая имеет решение; одна из ветвей полностью прекращает с активностью. Это было бы похоже на подпрограмму просто вернуть управление запустившим при выполнении условия. к югу активность () {... ... если (условие) {...} еще {возвращение; // Эта отрасль завершает деятельность} ...} Спасибо, Карлос
Ytsejammer
1

голосов
1

ответ
1k

Просмотры

Позиционирование элементов за пределами деятельности на Android

Есть ли способ, чтобы абсолютно позиционировать элемент пользовательского интерфейса на Android, так что он находится за пределами деятельности? Например: вы можете создать полноэкранное ImageView просто путем перемещения / изменения размера ImageView внутри существующей регулярной деятельности, а не создавать новый полноэкранный режим деятельности? EDIT: Перечитывая мой вопрос, я вижу, что не очень понятно, о чем я пытаюсь выполнить. Я хотел бы временно расширить элемент для покрытия панели уведомлений в верхней части экрана. Мне нужно, чтобы создать полупрозрачно в полноэкранном режиме наложения, но так как полупрозрачные деятельность не может покрыть панель уведомлений Я пытаюсь выяснить, если это возможно для элемента, чтобы вырваться за пределы активности и изменить размер себя, чтобы заполнить весь экран, сверху вниз.
Aleksander Kmetec
1

голосов
1

ответ
2.4k

Просмотры

как получить доступ к компоновкам большого макета в деятельности?

Я имею макет, который я хочу, чтобы оказать на различные размеры мобильных (как WVGA854). Структура ресурсов, как разреш \ расположение \ main.xml Рез \ макет большого \ main.xml По умолчанию он принимает макет main.xml файл самого макета. Его не указывает на макете-большой \ main.xml его метания исключение: активность не может начать ресурс не найден Так может любой один наставит меня, как я могу добиться этого и как поддерживать Mutiple экраны с различными раскладками, как большие, маленькие и по умолчанию вместе с изображения, указанные в соответствующих папках дип. Заранее спасибо С уважением: Jayanth
user320276
1

голосов
1

ответ
87

Просмотры

Android приложение не работает на 1.5 прошивке?

я создал одно приложение страницы для отображения данных телефонной книги в списке. Я использую 2.1 SDK в эмуляторе и приложение работает нормально. но в моем HTC герой прошивка 1.5, когда я пытаюсь intall же приложение на приложения HTC герой успешно установлен, но когда я нажимаю на значок приложения он дает мне силы, близкую ошибку, даже я поставил minsdkversion свойство в файле манифеста до 3 здесь является журнал Cat [2010-05-17 12:28:18 - AddressBook] Начало активности com.example.AddressBook.AddressBook на устройстве [2010-05-17 12:28:19 - AddressBook] ActivityManager: Невозможно послать DDM кусок 46454154: нет ни одного обработчика определяется [2010-05-17 12:28:19 - AddressBook] ActivityManager: не могу послать DDM кусок 4d505251: нет обработчика определен [2010-05-17 12:28:20 - AddressBook] ActivityManager: Начало: Intent { комп = {com.example.AddressBook / com.example.AddressBook. AddressBook}} Пожалуйста, помогите мне, что случилось? любая помощь будет appriciated.
UMAR
1

голосов
1

ответ
2.1k

Просмотры

Facebook-Like Activity Stream

Я написал заявление, его не скрипт социальной сети с помощью любых средств, но мой сценарий имеет «профили пользователей» для него, и я заинтересован в идее SQL / PHP дизайн идти о потоках активности, как видно на Facebook для пользователей мой сценарий. Такие мероприятия, как «Джо заметил на стене Х». или «Joey, X, Foo как ваши фото» или «Foo изменил свое изображение [изображение здесь]» Я хочу, чтобы быть динамичными, а не статические данные, потому что если Джо меняет свое имя на что-то другое, я не хочу, чтобы это показать старые данные. Так что, если бы вы, пожалуйста, помогите мне с путем разработки этого ... Мне не нужен какой-либо код только толчок в правильном направлении. Большое спасибо!
ohmybrew
1

голосов
1

ответ
219

Просмотры

Android: как просматривать страницы в той же деятельности порционное iPhone

В принципе, в Android активность представляет жизненный цикл экрана. С startActivity (умысел), приложение переходит на новый вид деятельности. Как добиться «страницы изменения» в той же деятельности порционное iPhone как? с сенсорным экраном в опции. Причина этого вопроса я обнаружил Android приложения Diet2Go. Когда вы выбираете диету. На вкладке «Моя диета», вы можете просмотреть страницу диеты постранично. Я знаю, что в одной и той же деятельности, потому что при нажатии на кнопку Назад, вы вернетесь обратно в свой домашний экран.
Raymond Chenon
1

голосов
1

ответ
2.1k

Просмотры

Смешивание menuItem.setIntent с onOptionsItemSelected не работает

Выражая образец Android деятельность, что пожары некоторых других видов деятельности из своего меню, я пришел, чтобы иметь некоторые пункты меню обрабатываемых в onOptionsItemSelected, и некоторые пункты меню (которые только что уволил намерение), обрабатываемые по телефону setIntent в onCreateOptionsMenu. В основном что-то вроде: @Override общественных логического onCreateOptionsMenu (меню Menu) {super.onCreateOptionsMenu (меню); menu.add (0, MENU_ID_1, Menu.NONE, R.string.menu_text_1); menu.add (0, MENU_ID_2, Menu.NONE, R.string.menu_text_2); menu.add (0, MENU_ID_3, Menu.NONE, R.string.menu_text_3). setIntent (новый Intent (это, MyActivity_3.class)); возвращает истину; } @Override общественного логический onOptionsItemSelected (MenuItem пункт) {super.onOptionsItemSelected (пункт); переключатель (item.getItemId ()) {случай (MENU_ID_1): // Обработать команда меню 1 ... возвращает истину; случай (MENU_ID_2): // меню процесса Команда 2 ... // Например, также огонь Намерение для MyActivity_2 возвращает истину; по умолчанию: возвращение ложным; }} Очевидно, что в этой ситуации Намерения набора на MENU_ID_3 никогда не уволят, или так или иначе связанная с ним деятельность никогда не началась. Android Javadoc в какой-то момент выглядит. Что это на самом деле означает «и больше ничего не обрабатывает элемент»? Достаточно ли вернуть фальшь onOptionsItemSelected? Я также старался не называть super.onOptionsItemSelected (пункт) в начале и только вызывать его в случае переключателя по умолчанию, но у меня были такие же результаты. Кто-нибудь есть какие-либо предложения? Имеет ли Android позволяет смешивать два типа обработки? Спасибо за ваше время все. // Обработать команда меню 2 ... // Например, также огонь Намерение для MyActivity_2 возвращает истину; по умолчанию: возвращение ложным; }} Очевидно, что в этой ситуации Намерения набора на MENU_ID_3 никогда не уволят, или так или иначе связанная с ним деятельность никогда не началась. Android Javadoc в какой-то момент выглядит. Что это на самом деле означает «и больше ничего не обрабатывает элемент»? Достаточно ли вернуть фальшь onOptionsItemSelected? Я также старался не называть super.onOptionsItemSelected (пункт) в начале и только вызывать его в случае переключателя по умолчанию, но у меня были такие же результаты. Кто-нибудь есть какие-либо предложения? Имеет ли Android позволяет смешивать два типа обработки? Спасибо за ваше время все. // Обработать команда меню 2 ... // Например, также огонь Намерение для MyActivity_2 возвращает истину; по умолчанию: возвращение ложным; }} Очевидно, что в этой ситуации Намерения набора на MENU_ID_3 никогда не уволят, или так или иначе связанная с ним деятельность никогда не началась. Android Javadoc в какой-то момент выглядит. Что это на самом деле означает «и больше ничего не обрабатывает элемент»? Достаточно ли вернуть фальшь onOptionsItemSelected? Я также старался не называть super.onOptionsItemSelected (пункт) в начале и только вызывать его в случае переключателя по умолчанию, но у меня были такие же результаты. Кто-нибудь есть какие-либо предложения? Имеет ли Android позволяет смешивать два типа обработки? Спасибо за ваше время все. вернуться ложным; }} Очевидно, что в этой ситуации Намерения набора на MENU_ID_3 никогда не уволят, или так или иначе связанная с ним деятельность никогда не началась. Android Javadoc в какой-то момент выглядит. Что это на самом деле означает «и больше ничего не обрабатывает элемент»? Достаточно ли вернуть фальшь onOptionsItemSelected? Я также старался не называть super.onOptionsItemSelected (пункт) в начале и только вызывать его в случае переключателя по умолчанию, но у меня были такие же результаты. Кто-нибудь есть какие-либо предложения? Имеет ли Android позволяет смешивать два типа обработки? Спасибо за ваше время все. вернуться ложным; }} Очевидно, что в этой ситуации Намерения набора на MENU_ID_3 никогда не уволят, или так или иначе связанная с ним деятельность никогда не началась. Android Javadoc в какой-то момент выглядит. Что это на самом деле означает «и больше ничего не обрабатывает элемент»? Достаточно ли вернуть фальшь onOptionsItemSelected? Я также старался не называть super.onOptionsItemSelected (пункт) в начале и только вызывать его в случае переключателя по умолчанию, но у меня были такие же результаты. Кто-нибудь есть какие-либо предложения? Имеет ли Android позволяет смешивать два типа обработки? Спасибо за ваше время все.
superjos
1

голосов
1

ответ
1.1k

Просмотры

Активность / Live Wallpaper связи в Android

У меня есть живые обои, которые я хотел бы общаться с от деятельности в том же пакете. Я никогда не делал каких-либо работ с услугами. Смогу ли я использовать локальный шаблон Service, или я ограничен, потому что моя служба живые обои, и нужно использовать Намерения или AIDL? Я думаю, что поток будет идти что-то вроде этого, пожалуйста, поправьте меня, где мой процесс может завершиться неудачно: Предварительный просмотр в прямом эфире обои из Live Wallpaper Chooser Перейти в мой пользовательские настройки активности Нажмите на кнопку «Screen Shot» или предпочтение, чтобы открыть «Screen Shot»деятельность Отправить сообщение для моего стола, прося снимком экрана, растрового изображение, чтобы быть оказан сервис обои получает сообщение и делает его текущие визуальные эффекты в растровое изображение в приложении»
Josh
1

голосов
1

ответ
584

Просмотры

Передача данных по активности с резьбовой службы

Как я могу передать данные из резьбовой службы в деятельность, которая создала службу? Это сценарий Логин. Пользователь вводит учетные данные, активность запускает службу, которая вызывает службу WCF для подтверждения полномочий. Когда это будет сделано, я хочу, чтобы сервис сказать, что деятельность Логин преуспела / не удалось.
Awesome

Просмотр дополнительных вопросов

Связанные вопросы