| |||||||
Das Thema "Context-Menü on TableRow" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 05.10.2011
Beiträge: 13
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| ich versuche gerade verzweifelt ein Context-Menü in meinem TableLayout zu implementieren. Ich füge dynamisch in mein TableLayout einige TableRows hinzu und "registiere" diese für Context-Menüs. Code: final TableRow listRow = (TableRow) inflater.inflate(R.layout.suggestion_list_item, null); .... registerForContextMenu(listRow); Code: @Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater_menu = getMenuInflater();
inflater_menu.inflate(R.menu.context_suggestion, menu);
menu.setHeaderTitle(R.string.options);
} Code: <?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/edit"
android:title="@string/edit" />
<item android:id="@+id/delete"
android:title="@string/delete" />
</menu> Ich hoffe mir kann jemand helfen und ich hoffe ich habe alle nötigen und relevanten Code-Ausschnitte eingefügt. Schönen Abend Christoph |
| | |
| | #2 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Sensation Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
|
Hängen deine TableRows in einer ListView? Wenn ja, registrier mal die ListView für Context-Menüs, so hab ich es jedenfalls bei mir realisiert und das funktioniert.
|
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 05.10.2011
Beiträge: 13
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Nein, die TableRows hängen in einem TableLayout. Wenn ich zusätzlich das TableLayout für das ContextMenü registriere, habe ich ein doppeltes Menü. Also Header, Bearbeiten, Löschen, Bearbeiten, Löschen. Aber auch da ist auf Druck aller Menüpunkt menuInfo NULL. Hier mal meine Layouts: meeting_view.xml: Code: <?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/scrollView1" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical" android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical" android:layout_height="wrap_content">
<TextView android:id="@+id/meetingTitle" android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:gravity="center_horizontal" android:shadowColor="#f00" android:shadowRadius="3"></TextView>
<TableLayout android:id="@+id/list_suggestions" android:layout_height="wrap_content" android:layout_width="match_parent" android:stretchColumns="*"></TableLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical" android:layout_height="wrap_content">
<TextView android:id="@+id/commentsTitle" android:layout_height="wrap_content" android:text="@string/comments" android:layout_width="match_parent" android:gravity="center_horizontal" android:shadowColor="#f00" android:shadowRadius="3"></TextView>
<TableLayout android:id="@+id/list_comments" android:layout_height="wrap_content" android:layout_width="match_parent"></TableLayout>
</LinearLayout>
</LinearLayout>
</ScrollView> Code: <?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/suggestionRow" android:layout_height="wrap_content" android:layout_width="match_parent" android:longClickable="true">
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="wrap_content">
<LinearLayout android:id="@+id/linearLayout2" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="wrap_content">
<ToggleButton android:background="@drawable/picked_button" android:id="@+id/pickedButton" android:layout_height="35dip" android:layout_width="35dip" android:textOn="" android:textOff="" android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:layout_marginTop="5dip" android:layout_marginBottom="5dip"></ToggleButton>
<TextView android:text="TextView" android:id="@+id/suggestion_list_item_date" android:layout_height="wrap_content" android:layout_width="wrap_content" android:maxWidth="100dip" android:layout_gravity="center_vertical"></TextView>
<RadioGroup android:layout_height="wrap_content" android:id="@+id/voteButtons" android:orientation="horizontal" android:gravity="right" android:layout_width="match_parent" android:layout_gravity="right|center_vertical">
<RadioButton android:background="@drawable/vote_no_button" android:id="@+id/voteNoButton" android:layout_width="35dip" android:layout_height="35dip"></RadioButton>
<RadioButton android:background="@drawable/vote_maybe_button" android:id="@+id/voteMaybeButton" android:layout_width="35dip" android:layout_height="35dip" android:layout_marginLeft="15dip"></RadioButton>
<RadioButton android:background="@drawable/vote_yes_button" android:id="@+id/voteYesButton" android:layout_width="35dip" android:layout_height="35dip" android:layout_marginLeft="15dip" android:layout_marginRight="15dip"></RadioButton>
</RadioGroup>
</LinearLayout>
<LinearLayout android:id="@+id/voteBar" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:background="@drawable/shape">
<TextView android:id="@+id/voteBarRed" android:layout_height="10dip" android:background="#f00" android:layout_width="wrap_content"></TextView>
<TextView android:id="@+id/voteBarYellow" android:layout_height="10dip" android:background="#ff0" android:layout_width="wrap_content"></TextView>
<TextView android:id="@+id/voteBarGreen" android:layout_height="10dip" android:background="#0f0" android:layout_width="wrap_content"></TextView>
<TextView android:id="@+id/voteBarGrey" android:layout_height="10dip" android:background="#ccc" android:layout_width="wrap_content"></TextView>
</LinearLayout>
<TextView android:id="@+id/seperator" android:layout_height="1dip" android:background="#333" android:layout_width="match_parent" android:layout_marginTop="5dip"></TextView>
</LinearLayout>
</TableRow> Aber laut Doku ist es möglich für jede View ein ContextMenü zu erstellen. Und eine TableRow ist ja auch nur eine View. Deswegen verstehe ich einfach nicht wo der Fehler ist... Sonst Ideen? :/ |
| | |
| | #4 (permalink) |
| Neuer Benutzer Registriert seit: 05.10.2011
Beiträge: 13
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Keine eine Idee? Vielleicht ist ein TableLayout nicht die richtige Lösung? Ich habe mal mein Mockup hochgeladen, um anzudeuten, was ich realisieren möchte. Dabei soll es sowohl auf den Terminvorschlägen im oberen Teil, als auch auf den Kommentaren im unteren Teil ein Context-Menü geben...
|
| | |
| | #5 (permalink) |
| Junior Mitglied Registriert seit: 06.09.2011
Beiträge: 38
Abgegebene Danke: 2
Erhielt 5 Danke für 5 Beiträge
| Gratis E-Book: Android - Download - CHIP Online in dem Buch steht´s beschrieben wie man ein Context Menu baut evtl. hilft dir das ja weiter ![]() MfG nijoX |
| | |
| | #6 (permalink) |
| Neuer Benutzer Registriert seit: 05.10.2011
Beiträge: 13
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Dort ist es beschrieben, wie in jedem Tutorial und der Android Doku. Leider klappt es für mich einfach nicht. Ich werde nun mal ein bisschen detaillierter: Ich habe die Klasse Meeting_View extends Activity mit folgender onCreateMethode: Code: public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.meeting_view);
... [Daten vom http-Server holen]
TableLayout listSuggestions = (TableLayout) findViewById(R.id.list_suggestions);
addSuggestions(listSuggestions, (List<Object>) meetingInfos.get("Suggestion_Area"), meeting_value);
} Code: private void addSuggestions(TableLayout listSuggestions, List<Object> suggestions, final long meeting_value) {
LayoutInflater inflater = LayoutInflater.from(this);
for (Object sugg_object: suggestions) {
final TableRow listRow = (TableRow) inflater.inflate(R.layout.suggestion_list_item, null);
... [Anpassung des Inhalts der listRow]
registerForContextMenu(listRow);
listSuggestions.addView(listRow);
}
} Ich weiß einfach nicht mehr weiter. Mir würde nicht mal ein Workaround einfallen, um dieses Problem zu lösen... |
| | |
| | #8 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
Du solltest an der stelle kein TableLayout verwenden, sondern eine ListView List View | Android Developers Sonst bekommst du schnell Probleme mit der Performance / Ressourcen Verbrauch.
__________________ http://android.fungamer.net/ |
| | |
| | #9 (permalink) |
| Neuer Benutzer Registriert seit: 05.10.2011
Beiträge: 13
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
aber damit bekomme ich ja nicht 2 Listen untereinander realisiert. Ich möchte ja nicht innerhalb einer Liste scrollen, sondern hätte gerne "außenrum" ein scrollable. Sodass zuerst alle Terminvorschläge und anschließend erst alle Kommentare aufgelistet werden. Die Kommentare sind dann ggf. gar nicht ohne scrollen zu sehen. Dafür müsste ich dann aber alles in eine ListView tun, und das klingt nicht nach so einer tollen Lösung.
|
| | |
| | #10 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
Klar ist ohne Probleme machbar. Du kannst 2 Listen untereinander machen. Sowohl kannst du auch ein extra Control oder ListView in eine Listview packen. Sprich oben lässt du deine Einträge und wenn man nach unten scrollt findet man die Kommentare. das is überhaupt kein Problem und ohne großen Aufwand zu machen. Aber ist deine Sache. Meine Lösung wäre aufjedenfall besser von der Performance und Ressourcen Verbrauch.
__________________ http://android.fungamer.net/ |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| RatingBar in TableRow | padde83 | Android App Entwicklung | 7 | 30.07.2010 16:08 |
| onClickListener auf TableRow | Gibbsnich | Android App Entwicklung | 0 | 20.07.2010 11:46 |
| Usability beim Context menü | Raidri | Android App Entwicklung | 6 | 11.06.2010 11:28 |
| TableRow positionieren | Luser_k | Android App Entwicklung | 1 | 23.04.2010 09:28 |
| TableRow Ausrichtung | joschika77 | Android App Entwicklung | 1 | 28.05.2009 15:33 |