- Forum-Beiträge: 51
19.04.2020, 12:41:52 via Website
19.04.2020 12:41:52 via Website
Ich möchte gerne meine info.xml aufrufen beim Anklicken. das Menü habe ich erstellt Aber wie rufe ich das jetzt auf?
Mit freundlichen Grüßen
Roberto
19.04.2020, 12:41:52 via Website
19.04.2020 12:41:52 via Website
Ich möchte gerne meine info.xml aufrufen beim Anklicken. das Menü habe ich erstellt Aber wie rufe ich das jetzt auf?
Mit freundlichen Grüßen
Roberto
19.04.2020, 14:32:26 via Website
19.04.2020 14:32:26 via Website
Hallo Roberto,
bitte beschreibe genauer was du machen willst.
Was ist deine info.xml?
Ein Layout? Eine Menüdefinition?
Wird das menü in deiner Activity schon angezeigt?
LG Pascal //It's not a bug, it's a feature.
19.04.2020, 14:55:36 via Website
19.04.2020 14:55:36 via Website
Also das ist Layout mit ein bar informationen über die App. Das menü wird in der Appbar schon angezeigt ,nun will ich aber wenn ich auf App info klicke das sich das dann auch öffnet.
19.04.2020, 14:59:35 via Website
19.04.2020 14:59:35 via Website
Gib mir mal ein Beispiel wie du das meinst.
LG Pascal //It's not a bug, it's a feature.
19.04.2020, 15:10:02 via Website
19.04.2020 15:10:02 via Website
Also ich habe ja oben das Menü, dann gehe ich auf die drei Punkte dann erscheind der Menüpunkt App Info, und da soll dann sich das Layout bzw die info.xml öffnen.
19.04.2020, 15:11:04 via Website
19.04.2020 15:11:04 via Website
Hallo
ich denke die Methode hast du
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
aber die Methode wo der Click auf das menue ankommt nicht
@Override
public boolean onOptionsItemSelected(MenuItem item) {
19.04.2020, 15:13:20 via Website
19.04.2020 15:13:20 via Website
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Habe ich auch.
19.04.2020, 15:53:05 via Website
19.04.2020 15:53:05 via Website
An welcher stelle muss ich dann die info.xml einfügen also ohne xml am ende.
19.04.2020, 16:57:20 via Website
19.04.2020 16:57:20 via Website
LG Pascal //It's not a bug, it's a feature.
19.04.2020, 17:38:54 via Website
19.04.2020 17:38:54 via Website
Also ich habe das so erstellt in MainActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu:
addSomething();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void addSomething() {
}
}
und im menu.xml
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu"
android:background="@color/colorPrimaryDark"
android:icon="@android:drawable/ic_menu_info_details"
android:textColor="#F1EBEB"
android:title="App info"
app:showAsAction="never" />
nun will ich aber das es die info.xml aus dem Layout Ordner auf macht.
19.04.2020, 18:52:45 via Website
19.04.2020 18:52:45 via Website
Nur eine Info.xml als Layout wird dir nichts helfen.
Zum anzeigen eines Layouts brauchst du immer ein Fragment oder einen Activity o.ä.
Somit musst du zu deinem info.xml Layout eine Activity erstellen und kannst diese dann per Intent starten lassen.
LG Pascal //It's not a bug, it's a feature.
19.04.2020, 19:27:54 via Website
19.04.2020 19:27:54 via Website
Okay gibt es da ein beispiel?
19.04.2020, 19:59:47 via Website
19.04.2020 19:59:47 via Website
Für dein spezielles nicht aber für Activities und umschalten im allgemeinen:
https://google-developer-training.github.io/android-developer-fundamentals-course-practicals/en/Unit%201/21_p_create_and_start_activities.html
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 05:47:32 via Website
20.04.2020 05:47:32 via Website
Hallo dein code is eigentlich OK.
Wenn du auch eine Actionbar oder Tollbar hast. Eine activity hast du du ja wie du sagst.
Das neue
Das Menü wird nur über die Actionbar angezeigt. Über das Layout durch Klick eines Buttons zb geht das nicht.
Da könntest du einen Dialog. Oder ein popup Menü machen.
Die zwei genannten Methoden gehen nur in Verbindung mit der Actionbar.
https://www.javatpoint.com/android-popup-menu-example
— geändert am 20.04.2020, 05:52:15
20.04.2020, 06:00:46 via Website
20.04.2020 06:00:46 via Website
a nun will ich aber das es die info.xml aus dem Layout Ordner auf macht
Wo was ist diese info.xml?
Wenn das das Menü für ein popup sein soll dafür habe ich dir ein Beispiel gegeben.
20.04.2020, 10:35:12 via Website
20.04.2020 10:35:12 via Website
Na ja ein popup sollte es nicht zwingend sein.
Ach ja eine activity_main.xml habe ich schon
<?xml version="1.0" encoding="utf-8"?>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="MainActivity">
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
20.04.2020, 10:39:07 via Website
20.04.2020 10:39:07 via Website
Wie gesagt dann mach eine neue Activity draus und starte diese
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 10:46:05 via Website
20.04.2020 10:46:05 via Website
Hallo was soll das mit der activity ist erstens nur die Layout Datei außerdem hast du nicht mal ein Layout nur die WebView. Reicht eigentlich nicht.
Die webview gehört in ein layout. Ob relativ, linear, constrain ist egal.
Schaue dir mal Beispiele im Netz an wie eine Layout dadei ordentlich aussehen sollte.
— geändert am 20.04.2020, 10:55:29
20.04.2020, 10:57:13 via Website
20.04.2020 10:57:13 via Website
Okay da ich ja in der Appbar Quasi ein Button habe muss die die android: id @+id/menu" sein da so heißt der button name="menu">App Info im string.xml und im menu.xml ist der titel App info
20.04.2020, 11:01:47 via Website
20.04.2020 11:01:47 via Website
Ich sehe bei dem wirrwar was du schreibst nicht duch..
— geändert am 20.04.2020, 11:10:15
20.04.2020, 11:17:49 via Website
20.04.2020 11:17:49 via Website
Und wo ist jetzt das Problem du hast doch alles. Was willst du?
— geändert am 20.04.2020, 11:18:14
20.04.2020, 11:39:23 via Website
20.04.2020 11:39:23 via Website
so habe nun eine zweite Activity erstellt.
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.appinfo);
}
}
20.04.2020, 11:44:04 via Website
20.04.2020 11:44:04 via Website
Genau und jetzt per Intent diese Activity starten...
https://developer.android.com/training/basics/firstapp/starting-activity
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 12:03:59 via Website
20.04.2020 12:03:59 via Website
Also so
public void sendMessage(View view) {
Intent intent = new Intent(this, Main2Activity.class);
EditText editText = (EditText) findViewById(R.id.menu);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
20.04.2020, 12:07:27 via Website
20.04.2020 12:07:27 via Website
Wenn R.id.menu deine EditText ist dann ja
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 12:12:47 via Website
20.04.2020 12:12:47 via Website
habe da mal noch was geändert so sieht es jetzt in MainActivity aus
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu:
addSomething();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void addSomething() {
}
public void sendMessage(View view) {
Intent intent = new Intent(this, Main2Activity.class);
@SuppressLint("WrongViewCast") EditText editText = findViewById(R.id.textView);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
ich hoffe es ist richtig so
20.04.2020, 12:20:34 via Website
20.04.2020 12:20:34 via Website
Ja sieht besser aus nur was ist EXTRA_MESSAGE.
Hast du das auch am Anfang als string definiert?
Nur schreibe den Code in die addSomething Methode ohne das View View
— geändert am 20.04.2020, 12:28:11
20.04.2020, 12:31:00 via Website
20.04.2020 12:31:00 via Website
Also meine string sieht so aus.
<resources>
<string name="app_name">lafa-App</string>
<string name="menu">App Info</string>
20.04.2020, 12:33:03 via Website
20.04.2020 12:33:03 via Website
Schön aber warum postest du das?
20.04.2020, 12:34:54 via Website
20.04.2020 12:34:54 via Website
Mach lieber sowas:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu:
switchToActivity();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void switchToActivity() {
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
Du bracuhst doch kein Text übergeben oder?
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 12:38:41 via Website
20.04.2020 12:38:41 via Website
Ich bin natürlich davon ausgegangen das er ein Text übergeben will. Aber er hat es scheinbar nur von deinem Beispiel kopiert.
20.04.2020, 12:39:12 via Website
20.04.2020 12:39:12 via Website
ja da haste auch wieder recht danke Pascal.
20.04.2020, 12:43:29 via Website
20.04.2020 12:43:29 via Website
Frage geht es denn jetzt.
Wenn nicht fehlt dir bestimmt der Eintrag in der Manifest. XML für die zweite Activity.
20.04.2020, 12:48:25 via Website
20.04.2020 12:48:25 via Website
Also Pascal das geht nun in der Mainfest ist es eingetragen nun muss ich nur noch den zurück Button machen dann geht alles wie gewünscht.
20.04.2020, 13:24:28 via Website
20.04.2020 13:24:28 via Website
Der normale Zurück Button am unteren Rand sollte standardmäßig funktionieren oder meinst du den Button in der Toolbar?
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 13:26:52 via Website
20.04.2020 13:26:52 via Website
Ich meine den Button in der Toolbar.
20.04.2020, 13:34:49 via Website
20.04.2020 13:34:49 via Website
Dann musst du einfach die toolbar laden und die passenden Listener nutzen:
https://stackoverflow.com/a/45344079/4975457
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 13:40:44 via Website
20.04.2020 13:40:44 via Website
Du meinst das wo so.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.MainActivity:
return true;
}
return super.onOptionsItemSelected(item);
}
}
20.04.2020, 13:44:48 via Website
20.04.2020 13:44:48 via Website
Bei Stackoverflow steht doch eindeutig:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_id);
toolbar.setTitleTextColor(Color.WHITE);
toolbar.setTitle(getResources().getString(R.string.your_title));
toolbar.setNavigationIcon(R.mipmap.back_btn);
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed(); // byDefault provided backPressed method, or handle your own way
}
});
Dein Title/Icons etc musst du selber suchen oder weglassen...
Alternativ kannst du folgendes probieren:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
//Home/back button
return true;
}
return super.onOptionsItemSelected(item);
}
— geändert am 20.04.2020, 13:45:58
LG Pascal //It's not a bug, it's a feature.
20.04.2020, 13:45:52 via Website
20.04.2020 13:45:52 via Website
Ach so ja gerade übersehen sorry mein Fehler.
20.04.2020, 14:00:26 via Website
20.04.2020 14:00:26 via Website
wenn ich `@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
//Home/back button
return true;
}
return super.onOptionsItemSelected(item);
}
muss ich das in der zweiten Activity einbauen ?`
20.04.2020, 15:00:39 via Website
20.04.2020 15:00:39 via Website
Wenn du in der zweiten activity zurück zur ersten mittels der appbar willst.
Machst du das genau so wie in der ersten. Natürlich oder ambesten mit einer zweiten Menue2.xml Datei.
20.04.2020, 15:20:07 via Website
20.04.2020 15:20:07 via Website
Ich habe einfach jetzt eine zweite menu.xml erstellt und das so gemacht und es wunderbar.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.back, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu2:
switchToActivity();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void switchToActivity() {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.