Ich will ja mit java code das neue layout erstellen.
Ich weiss aber nicht so ganz wie ich das machen soll, so dass das neue Layout zwischen zwei anderen layouts plaziert werden kann.
Ich will ja mit java code das neue layout erstellen.
Ich weiss aber nicht so ganz wie ich das machen soll, so dass das neue Layout zwischen zwei anderen layouts plaziert werden kann.
Hallo zusammen,
Ich habe in der XML datei meiner APP schin mehrere relativLayouts. dazwischen ist ein Button, und wenn dieser angeklickt wird, dann soll ein zusätzliches Relativlayout mit textViews erstellt werden.
Also die XML datei sieht wie folgt aus (XML Datei ist zu lang daher dieses Beispiel):
<scrollView
<RelativeLayout1
<RelativeLayout2
<RelativeLayout3
<ImageButton/>
</scrollView
</RelativeLayout1
</RelativeLayout2
</RelativeLayout3
nach dem ImgaeButton click soll dann so aussehen:
<scrollView
<RelativeLayout1
<RelativeLayout2
<RelativeLayout3
<RelativeLayout4
<ImageButton/>
<ImageButton2/>
</RelativeLayout4
</RelativeLayout3
</RelativeLayout2
</RelativeLayout1
</scrollView
kann mir einer sagen wie ich das bewältigen kann?
Danke
Hallo zusammen,
ich benutze DatePickerFragment um ein Datum auszuwählen, es ist leider möglich ein Datum auch in der Vergangenheit auszuwählen.
kann mir einer sagen wie ich das verhindern kann. also ich will dass die Daten in der vergangenheit ausgegraut angezeigt werden.
mein Code bis jetzt ist:
public void datePicker(View view){
OneWayActivity.DatePickerFragment fragment = new OneWayActivity.DatePickerFragment();
fragment.show(getSupportFragmentManager(), "date");
}
private void setDate(final Calendar calendar) {
String daysArray[] = {"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday", "Saturday"};
int day = calendar.get(Calendar.DAY_OF_WEEK);
String selectedDay = daysArray[day-1];
final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
((TextView) findViewById(R.id.tvDate)).setText(dateFormat.format(calendar.getTime()));
((TextView) findViewById(R.id.tvDay)).setText(selectedDay);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar calendar = new GregorianCalendar(year,month,day);
setDate(calendar);
}
public static class DatePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(),year,month,day);
}
}
Alles anzeigen
gelöst
@Override
protected void onPause() {
super.onPause();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("savedDay", tvDay.getText().toString());
editor.putString("savedDate", tvDate.getText().toString());
editor.putString("savedDayReturn",tvDayReturn.getText().toString());
editor.putString("savedDateReturn",tvDateReturn.getText().toString());
editor.putString("savedFromAirport",tvFromAirportCode.getText().toString());
editor.putString("savedFromCity",tvFromCity.getText().toString());
editor.putString("savedToAirport", tvToAirportCode.getText().toString());
editor.putString("savedToCity", tvToCity.getText().toString());
editor.commit();
}
@Override
protected void onPostResume() {
super.onPostResume();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
savedDay = prefs.getString("savedDay",tvDay.getText().toString());
savedDate = prefs.getString("savedDate",tvDate.getText().toString());
savedDayReturn = prefs.getString("savedDayReturn",tvDayReturn.getText().toString());
savedDateReturn = prefs.getString("savedDateReturn",tvDateReturn.getText().toString());
savedFromAirport = prefs.getString("savedFromAirport",tvFromAirportCode.getText().toString());
savedFromCity = prefs.getString("savedFromCity",tvFromCity.getText().toString());
savedToAirport = prefs.getString("savedToAirport", tvToAirportCode.getText().toString());
savedToCity = prefs.getString("savedToCity", tvToCity.getText().toString());
if(savedDay != null){
tvDay.setText(savedDay);
}else{
}
if(savedDate != null){
tvDate.setText(savedDate);
}
else{
}
if(savedDayReturn != null){
tvDayReturn.setText(savedDayReturn);
}
if(savedDateReturn!= null){
tvDateReturn.setText(savedDateReturn);
}
if(savedFromAirport != null){
tvFromAirportCode.setText(savedFromAirport);
}
if(savedFromCity != null){
tvFromCity.setText(savedFromCity);
}
if(savedToAirport != null){
tvToAirportCode.setText(savedToAirport);
}
if(savedToCity != null){
tvToCity.setText(savedToCity);
}
if(getIntent().getExtras()!= null) {
setFromToAirports(getIntent().getExtras());
}
}
Alles anzeigen
wie und wo muss ich die denn wieder herstellen?
Kannst du mir einen BeispielCode dazu geben??
Wie kann ich in onPause speichern und wie in onResume laden??
Dnake
Hallo zusammen,
ich würde gerne wenn ich eine activität verlasse den zustand dieser activität speichern, so dass wenn ich wieder in dieser reingehen alles wie vorher ist.
Ich hab nach etwas recherche so implemnetiert:
TextView tvDate, tvDay;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a1);
tvDate = (TextView)findViewById(R.id.tvDate);
tvDay =(TextView)findViewById(R.id.tvDay);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String stateDaySave = tvDay.getText().toString();
String stateDateSave = tvDate.getText().toString();
outState.putString("save_day", stateDaySave);
outState.putString("save_date", stateDateSave);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String savedDay = savedInstanceState.getString("save_day");
String savedDate = savedInstanceState.getString("save_date");
if(savedDay != null){
Log.d ("SavedDay != null",savedDay);
Toast.makeText(ReturnTripActivity.this,"onRestoreInstanceState: has day save", Toast.LENGTH_LONG).show();
tvDay.setText(savedDay);
}else{
Log.d ("SavedDay != null",savedDay);
Toast.makeText(ReturnTripActivity.this,"onRestoreInstanceState: no day save", Toast.LENGTH_LONG).show();
}
if(savedDate != null){
Toast.makeText(ReturnTripActivity.this,"onRestoreInstanceState: has date save", Toast.LENGTH_LONG).show();
tvDate.setText(savedDate);
}
else{
Toast.makeText(ReturnTripActivity.this,"onRestoreInstanceState: no date save", Toast.LENGTH_LONG).show();
}
}
Alles anzeigen
das problem ist, dass wenn ich die Aktivität verlasse und wieder da rein gehen, alle meine Einträge verschwinden.
Kann mir einer dabei helfen?
danke
Danke habe so gelöst:
Intent intent = new Intent(A1.this, A4.class);
intent.putExtra("activityName", "A1" );
startActivity(intent);
lastActivity = getIntent().getExtras().getString("activityName");
if(lastActivity.equals("A1")){
startActivity(new Intent(A4.this, A1.class));
}else if(lastActivity.equals("A2")){
startActivity(new Intent(A4.this, A2.class));
}else if(lastActivity.equals("A3")) {
startActivity(new Intent(A4.this, A3.class));
}
ich übergebe die ID der Aktivität:
public void onClick(View v){
Intent intent = new Intent(A1.this, A4.class);
intent.putExtra("id", A1.class.hashCode());
startActivity(intent);
}
und in A4 activität so :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a1);
int lastActivityId = getIntent().getExtras().getInt("id",0);
}
Alles anzeigen
Wie kann ich aber hier die richtige Activität rausbekommen??
ich mach das so:
public void onClick(View v){
startActivity(new Intent(A1.this, A4.class));
}So wechsele ich zum Beispiel von A1 zu A4
Also ich kann von A1, A2 und A3 mit Buttonclick zu A4, und von A4 wieder mit buttonclic zurück. Aber woher kann ich wissen aus welcher Aktivtät ch zu A4 gekommen bin??
Hallo zusammen,
in meiner App ich habe 3 activitäten, aus denen ich in einer Aktivität wehcseln kann, nun in dieser Activity ist ein urück button, wemit ich wieder zurück zur ursprungaktivität gehen möchte.
Meine Frage wie kann ich die activität aus der ich gekommen bin speichern??
Ich hoffe ich hab mein Problem verständlich erläutert.
Danke
Danke, hab das nach bisschen Recherche wie folg gelös:
package com.example.de.sasitravel;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import com.miguelcatalan.materialsearchview.MaterialSearchView;
import java.util.ArrayList;
public class SearchActivity extends AppCompatActivity {
MaterialSearchView materialSearchView;
Toolbar toolbar;
ArrayAdapter<String> adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
toolbar = (Toolbar)findViewById(R.id.toolbar);
// adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,getResources().getStringArray(R.array.array_airports));
setSupportActionBar(toolbar);
searchViewCode();
}
private void searchViewCode(){
materialSearchView = (MaterialSearchView)findViewById(R.id.search_view);
materialSearchView.setSuggestions(getResources().getStringArray(R.array.array_airports));
// materialSearchView.setAdapter(adapter);
materialSearchView.setEllipsize(true);
materialSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener(){
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.d("new String", newText);
// adapter.getFilter().filter(newText);
return false;
}
});
materialSearchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener(){
@Override
public void onSearchViewShown() {
}
@Override
public void onSearchViewClosed() {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem item = menu.findItem(R.id.menuSearch);
materialSearchView.setMenuItem(item);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuSearch:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onBackPressed() {
if(materialSearchView.isSearchOpen()){
Log.d(" onBackpresseds", "yes");
materialSearchView.closeSearch();
}else {
super.onBackPressed();
}
}
}
Alles anzeigen
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".SearchActivity">
<FrameLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorBackground"
android:theme="@style/AppTheme.AppBarOverlay"/>
<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bla"/>
</LinearLayout>
Alles anzeigen
Jetzt habe ich folgendes Probelm:
Ich habe eine String array in in dem Verzeichnis value/strings:
<resources>
<string name="app_name">SaSiTravel</string>
<string-array name="array_airports">
<item>Germany Dusseldorf DUS</item>
<item>Germany Dusseldorf/Weeze NRN</item>
<item>Germany cologne/Bonn CGN</item>
<item>Germany Frankfurt International Airport FRN</item>
</string-array>
</resources>
Alles anzeigen
Momentan die Suche so funktioniert, dass nur wenn ich G oder g eingbene dann wird was angezeigt, ich möchte aber dass auch wenn ich zum Beispiel D eingebe, diese Items angezeigt werden.
<item>Germany Dusseldorf DUS</item>
<item>Germany Dusseldorf/Weeze NRN</item>Und dass man Mindestens 2 Buchstabe eingeben soll bevor ein Suchergebnis angezeigt wird.Wie kann ich meine Suchfunktion dafür erweitern??Danke
Hallo zusammen,
ich würde gerne eine SearchView in Toolbar hinzufügen. Mein Problem ist, dass die SearchView nicht angezeigt wird.
package com.example.de.sasitravel;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.Arrays;
public class SearchActivity extends AppCompatActivity {
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
ListView lv = (ListView) findViewById(R.id.lvAirports);
ArrayList<String> arrayAirports = new ArrayList<>();
arrayAirports.addAll(Arrays.asList(getResources().getStringArray(R.array.array_airports)));
adapter = new ArrayAdapter<String>(SearchActivity.this, android.R.layout.simple_list_item_1 , arrayAirports);
lv.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_search, menu);
MenuItem searchItem = menu.findItem(R.id.menuSearch);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
}
Alles anzeigen
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_search" />
</android.support.design.widget.CoordinatorLayout>
Alles anzeigen
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".SearchActivity"
tools:showIn="@layout/activity_search">
<ListView
android:id="@+id/lvAirports"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
</ListView>
</android.support.constraint.ConstraintLayout>
Alles anzeigen
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menuSearch"
android:title="Search"
android:icon="@drawable/ic_search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always">
</item>
</menu>
Alles anzeigen
Kann mir einer sagen wo mein Fehler ist???
Danke
Dnake geschaft
private void setDate(final Calendar calendar) {
String daysArray[] = {"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday", "Saturday"};
int day = calendar.get(Calendar.DAY_OF_WEEK);
String selectedDay = daysArray[day-1];
final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
if (!isReturn) {
((TextView) findViewById(R.id.tvDate)).setText(dateFormat.format(calendar.getTime()));
((TextView) findViewById(R.id.tvDay)).setText(selectedDay);
}else{
((TextView) findViewById(R.id.tvDateReturn)).setText(dateFormat.format(calendar.getTime()));
((TextView) findViewById(R.id.tvDayReturn)).setText(selectedDay);
}
}
Alles anzeigen
Hallo zusammen,
ich benutze DatePickerFragment und möchte gerne in einer TextView den ausgewählten Tage anzuzeigen.
Das ist mein code bis jetzt.
package com.example.de.sasitravel;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.DatePicker;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import android.support.v4.app.DialogFragment;
import android.widget.TextView;
public class FlightActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener{
UserLocalStore userLocalStore;
Boolean isReturn = false;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flight);
userLocalStore = new UserLocalStore(this);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.top_NavView_bar);
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
Menu menu = bottomNavigationView.getMenu();
MenuItem menuItem = menu.getItem(1);
menuItem.setChecked(true);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener(){
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.action_profile:
startActivity(new Intent(FlightActivity.this, ProfileActivity.class));
break;
case R.id.action_flight:
break;
case R.id.action_hotel:
startActivity(new Intent(FlightActivity.this, HotelActivity.class));
break;
}
return false;
}
});
}
@Override
protected void onStart() {
super.onStart();
//startActivity(new Intent(this, LoginActivity.class));
if(authenticate() == false){
}else {startActivity(new Intent(this, LoginActivity.class));}
}
private boolean authenticate(){
return userLocalStore.getUserLoggedIn();
}
public void onClickOneWay(View v){
setContentView(R.layout.activity_one_way);
}
public void onClickReturn(View v){
setContentView(R.layout.activity_flight);
}
public void datePicker(View view){
DatePickerFragment fragment = new DatePickerFragment();
fragment.show(getSupportFragmentManager(), "date");
}
public void datePickerReturn(View view){
isReturn = true;
DatePickerFragment fragment = new DatePickerFragment();
fragment.show(getSupportFragmentManager(), "date");
}
private void setDate(final Calendar calendar) {
final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
if (!isReturn) {
((TextView) findViewById(R.id.tvDate)).setText(dateFormat.format(calendar.getTime()));
//((TextView) findViewById(R.id.tvDay)).setText(dateFormat.format(calendar.getTime()));
}else{
((TextView) findViewById(R.id.tvDateReturn)).setText(dateFormat.format(calendar.getTime()));
}
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar calendar = new GregorianCalendar(year,month,day);
Log.d("VIVZ", "day of week "+day );
setDate(calendar);
}
public static class DatePickerFragment extends DialogFragment{
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(),year,month,day);
}
}
}
Alles anzeigen
ich würde gerne dahin den Tag reinschreiben.
//((TextView) findViewById(R.id.tvDay)).setText(dateFormat.format(calendar.getTime()));
um zu testen habe ich die persische Übersetzungen komplett rausgenimmen und stattdessen die engliche übernommen. Also die App unterstützt zwar zwei Sprachen jedoch sind beide gleich geschrieben.
Nichtsdestotrotz werden die Buttons spiegelverkehr eingeordnet!
Wenn ich die Spracheinstellung am Handy ändere!
Hallo zusammen,
ich benutze in meiner App GregorianCalender, möchte aber gerne den persischen Kalender benutzen. Kann mir einer sagen welche Class dafür geeigent ist?
Oder mir einen Tipp geben wie ich bei einem Buttonclick den persischen kalender anzeigen kann?
LG