Also ich hab noch probleme:
annahme folgende Java datei
1package your.testbar;
2
3
4
5import android.app.ListActivity;
6import android.content.Context;
7import android.content.Intent;
8import android.graphics.PixelFormat;
9import android.os.Bundle;
10import android.os.Handler;
11import android.view.View;
12import android.view.LayoutInflater;
13import android.view.View.OnClickListener;
14import android.view.WindowManager;
15import android.view.WindowManager.LayoutParams;
16import android.widget.AbsListView;
17import android.widget.ArrayAdapter;
18import android.widget.ListView;
19import android.widget.TextView;
20import android.text.TextUtils;
21
22
23/**
24 * Another variation of the list of cheeses. In this case, we use
25 * {@link AbsListView#setOnScrollListener(AbsListView.OnScrollListener)
26 * AbsListView#setOnItemScrollListener(AbsListView.OnItemScrollListener)} to display the
27 * first letter of the visible range of cheeses.
28 */
29public class TestbarActivity extends ListActivity implements ListView.OnScrollListener {
30
31
32
33
34
35 private final class RemoveWindow implements Runnable {
36 public void run() {
37 removeWindow();
38 }
39
40 }
41
42 private RemoveWindow mRemoveWindow = new RemoveWindow();
43 Handler mHandler = new Handler();
44 private WindowManager mWindowManager;
45 private TextView mDialogText;
46 private boolean mShowing;
47 private boolean mReady;
48 private char mPrevLetter = Character.MIN_VALUE;
49
50 @Override
51 public void onCreate(Bundle savedInstanceState) {
52 super.onCreate(savedInstanceState);
53
54 mWindowManager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
55
56 // Use an existing ListAdapter that will map an array
57 // of strings to TextViews
58 setListAdapter(new ArrayAdapter<String>(this,
59 android.R.layout.simple_list_item_1, mStrings));
60
61 getListView().setOnScrollListener(this);
62
63 LayoutInflater inflate = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
64
65 mDialogText = (TextView) inflate.inflate(R.layout.main, null);
66 mDialogText.setVisibility(View.INVISIBLE);
67
68 mHandler.post(new Runnable() {
69 public void run() {
70 mReady = true;
71 WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
72 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
73 WindowManager.LayoutParams.TYPE_APPLICATION,
74 WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
75 | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
76 PixelFormat.TRANSLUCENT);
77 mWindowManager.addView(mDialogText, lp);
78 }
79 });
80 }
81
82 @Override
83 protected void onResume() {
84 super.onResume();
85 mReady = true;
86 }
87
88
89 @Override
90 protected void onPause() {
91 super.onPause();
92 removeWindow();
93 mReady = false;
94 }
95
96 @Override
97 protected void onDestroy() {
98 super.onDestroy();
99 if (mReady) {
100 mWindowManager.removeView(mDialogText);
101 }
102 mReady = false;
103 }
104
105 public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
106 int totalItemCount) {
107
108 if (mReady) {
109 char firstLetter = ' ';
110 final String text = mStrings[firstVisibleItem];
111 if (!TextUtils.isEmpty(text)) {
112 firstLetter = text.charAt(0);
113 }
114
115 if (!mShowing && firstLetter != mPrevLetter) {
116 mShowing = true;
117 mDialogText.setVisibility(View.VISIBLE);
118 }
119
120 mDialogText.setText(((Character)firstLetter).toString());
121 mHandler.removeCallbacks(mRemoveWindow);
122 mHandler.postDelayed(mRemoveWindow, 3000);
123 mPrevLetter = firstLetter;
124 }
125 }
126
127 public void onScrollStateChanged(AbsListView view, int scrollState) {
128 }
129
130 private void removeWindow() {
131 if (mShowing) {
132 mShowing = false;
133 mDialogText.setVisibility(View.INVISIBLE);
134 }
135
136 }
137
138
139 private String[] mStrings = {
140 "Abertam",
141 "Abondance", "Zypern"};
142
143
144 }
main.xml
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2006 The Android Open Source Project
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15-->
16
17<TextView xmlns:android="http://schemas.android.com/apk/res/android"
18 android:id="@+id/notetextview"
19 android:textSize="50sp"
20 android:textColor="#99FFFFFF"
21 android:background="#BB000000"
22 android:minWidth="70dip"
23 android:maxWidth="70dip"
24 android:padding="10dip"
25 android:gravity="center"
26/>
Vielleicht ist es einfach spät, aber ich check nicht was ich tun muss damit die String elemente (Abertam, Abondance und Zypern)
beim anklicken ein anderes Layout laden
steh grad völlig an, hat irgendwer eine idee? bzw. geht das überhaupt mit string elementen oder wie müsste man den obigen text umformen damit es mit anderen elementen funktioniert?
wäre für lösungen sehr dankbar
LG
Christian