M
mrwerner
Fortgeschrittenes Mitglied
- 22
Hallo,
Ich möchte eine TextView focusierbar und drückbar machen. Das mit dem drückbar funktioniert wunderbar. Nur beim setzen des Listeners für den Fokus gibts leider Probleme bei folgendem Code:
Layout:
Activity Code:
Wenn ich das Kommentar vor den 4 Zeilen in der onCreate-Methode entferne krachts beim Laden der Activity. Der try-catch block bringt nichts. Die Exception wird nicht gefangen.
Weiß jemand Rat?
Danke im Voraus
PS: In der Entlödung wird die TextView dann wahrscheinlich noch durch ein komplexeres Layout-Konstrukt ersetzt. Das sollte hier allerdings nichts zur Sache tun.
Ich möchte eine TextView focusierbar und drückbar machen. Das mit dem drückbar funktioniert wunderbar. Nur beim setzen des Listeners für den Fokus gibts leider Probleme bei folgendem Code:
Layout:
Code:
<TextView
style="@style/tc_month_view"
android:text="56"
android:gravity="center_horizontal|top"
android:clickable="true"
android:onClick="OnDayClick"
android:id="@+id/v_dayClick1"
android:focusable="true"
/>
<TextView
style="@style/tc_month_view"
android:text="56"
android:gravity="center_horizontal|top"
android:clickable="true"
android:onClick="OnDayClick"
android:id="@+id/v_dayClick2"
android:focusable="true"
/>
Activity Code:
Code:
package com.mrwerner.android.syncal;
import com.mrwerner.android.syncal.R;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.Toast;
public class MonthView extends Activity {
/** Called when the activity is first created. */
private final static String TAG = SynCalMonthView.class.getSimpleName();
public OnFocusChangeListener dayFocusListener = new OnFocusChangeListener ()
{
@Override
public void onFocusChange(View v, boolean hasFocus) {
Log.d(TAG, "Focus = '" + hasFocus + "' + id=" + v.getId());
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_month_view);
try {
// ohne diese Zeilen wird die Activity geladen
// View dayView1 = findViewById(R.id.v_dayClick1);
// dayView1.setOnFocusChangeListener(dayFocusListener);
// View dayView2 = findViewById(R.id.v_dayClick2);
// dayView2.setOnFocusChangeListener(dayFocusListener);
}
catch (Exception e)
{
Log.e(TAG, "ERROR: onCreate: " + e.getMessage());
}
}
public void OnDayClick(View view) {
switch (view.getId()) {
case R.id.v_dayClick1:
Log.d(TAG, "OnButtonClick - handle click of day");
Toast.makeText(this, "clicked on day", Toast.LENGTH_SHORT).show();
break;
case R.id.v_dayClick2:
Log.d(TAG, "OnButtonClick - handle click of day");
Toast.makeText(this, "clicked on day", Toast.LENGTH_SHORT).show();
break;
default:
Log.i(TAG, "OnButtonClick - unhandled id=" + view.getId());
break;
}
}
}
Wenn ich das Kommentar vor den 4 Zeilen in der onCreate-Methode entferne krachts beim Laden der Activity. Der try-catch block bringt nichts. Die Exception wird nicht gefangen.
Weiß jemand Rat?
Danke im Voraus
PS: In der Entlödung wird die TextView dann wahrscheinlich noch durch ein komplexeres Layout-Konstrukt ersetzt. Das sollte hier allerdings nichts zur Sache tun.