安卓点击事件问题

asfsdfsfdc 2013-08-05 12:32:24
// 添加TextView控件
for(int i = 0;i < menus.length;i++){
TextView tvMenu = new TextView(this);
tvMenu.setLayoutParams(new LayoutParams(30,30));
tvMenu.setPadding(30, 14, 30, 10);
tvMenu.setText(menus[i]);
tvMenu.setTextColor(Color.WHITE);
tvMenu.setGravity(Gravity.CENTER_HORIZONTAL);
menuLinerLayout.addView(tvMenu,menuLinerLayoutParames);
tvMenu.setOnClickListener(SlideMenuOnClickListener);
menuList.add(tvMenu);
}
// 单个菜单事件
OnClickListener SlideMenuOnClickListener = new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String menuTag =v.getText().toString();
new AlertDialog.Builder(MainActivity.this)
.setTitle("")
.setMessage(menuTag)
.setPositiveButton("确定" , null )
.show();}

为什么程序运行到String menuTag =v.getText().toString();这句就提示停止运行然后就退出
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxq_xsyu 2013-08-05
  • 打赏
  • 举报
回复
你试一下需不需要强制类型转换,转换成TextView对象,然后再v.getText()
asfsdfsfdc 2013-08-05
  • 打赏
  • 举报
回复
好像还不行,其实这个是左右滑动的菜单条~我用了另外一种方式了,谢谢各位
lxq_xsyu 2013-08-05
  • 打赏
  • 举报
回复
lxq_xsyu 2013-08-05
  • 打赏
  • 举报
回复

package com.example.test;

import android.app.Activity;
import android.app.AlertDialog;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;


public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		String[] menus = {"test1", "test2"};
		LinearLayout menuLinerLayout = (LinearLayout) findViewById(R.id.ll_main);
        // 参数设置
        LinearLayout.LayoutParams menuLinerLayoutParames = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT, 
                LinearLayout.LayoutParams.WRAP_CONTENT);
		for(int i = 0;i < menus.length;i++){
            TextView tvMenu = new TextView(this);
            tvMenu.setLayoutParams(new LayoutParams(30,30)); 
            tvMenu.setPadding(30, 14, 30, 10);
            tvMenu.setText(menus[i]);
            tvMenu.setTextColor(Color.RED);
            tvMenu.setGravity(Gravity.CENTER_HORIZONTAL);
            menuLinerLayout.addView(tvMenu,menuLinerLayoutParames);
            tvMenu.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {
					 // TODO Auto-generated method stub
	               
				    TextView textView = (TextView)v; 
				    String menuTag =textView.getText().toString();
	                new AlertDialog.Builder(MainActivity.this)
	                .setTitle("")
	                .setMessage(menuTag)
	                .setPositiveButton("确定" ,  null )
	                .show();
				}
			});
		}
	}
}
	



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/ll_main" >

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.test.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
lxq_xsyu 2013-08-05
  • 打赏
  • 举报
回复
Activity文件:

package com.example.test;

import android.app.Activity;
import android.app.AlertDialog;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] menus = {"test1", "test2"};
LinearLayout menuLinerLayout = (LinearLayout) findViewById(R.id.ll_main);
// 参数设置
LinearLayout.LayoutParams menuLinerLayoutParames = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
for(int i = 0;i < menus.length;i++){
TextView tvMenu = new TextView(this);
tvMenu.setLayoutParams(new LayoutParams(30,30));
tvMenu.setPadding(30, 14, 30, 10);
tvMenu.setText(menus[i]);
tvMenu.setTextColor(Color.RED);
tvMenu.setGravity(Gravity.CENTER_HORIZONTAL);
menuLinerLayout.addView(tvMenu,menuLinerLayoutParames);
tvMenu.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

TextView textView = (TextView)v;
String menuTag =textView.getText().toString();
new AlertDialog.Builder(MainActivity.this)
.setTitle("")
.setMessage(menuTag)
.setPositiveButton("确定" , null )
.show();
}
});
}
}
}


xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/ll_main" >

</LinearLayout>

运行结果:



这是我刚才写的,你粘贴过去试一下。
b87936260 2013-08-05
  • 打赏
  • 举报
回复
v.getText()??没看到你setText
asfsdfsfdc 2013-08-05
  • 打赏
  • 举报
回复
引用 1 楼 lxq_xsyu 的回复:
你试一下需不需要强制类型转换,转换成TextView对象,然后再v.getText()
怎么转换?我第一次写java啊

80,358

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧