我查看了http://developer.android.com/reference/android/view/View.html以找出差异,但无法理解.我只是部分理解"选定"状态.
有人可以用一些可靠的例子解释这些差异吗?我希望我的问题不是很模糊.如果是的话,如果有人帮我改进它会很棒,因为我不知道如何更清楚地问它.
先感谢您.
我知道有很多线程或多或少相同的主题,但没有一个涵盖我的情况:
我使用自定义行使用自定义CursorAdapter填充ListView.我有两个ListView状态:第一个状态只包含行中的文本; 第二个状态在每一行都有一个删除按钮.两种状态之间的切换是视图底部的按钮.
我试图实现的是:在第一个状态,当我点击该行时,屏幕应切换到另一个视图.在第二种状态下,当我点击删除按钮时,应该从数据库中删除所选行,应该重新填充ListView,如果我按下除删除按钮以外的行的任何其他部分,则不会发生任何事情.
我知道如何删除一个项目,然后重新填充ListView,当我点击第一个状态的行时,我知道如何切换到另一个视图; 但我无法将两者结合起来.我使用以下方法来获取行的id和位置:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Code goes in here either for deleting or switching into another view
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用一些if语句来获取单击删除按钮的条件或单击行但它不起作用.
第一个问题很明显:我怎样才能使它发挥作用?
第二个问题是:在第二个状态下,当按下行的任何部分而不是删除按钮屏幕切换到另一个视图.我怎么能阻止这个?我试图将行的.setClickable,.setPressed,.setSelected属性设置为false,但它没有帮助.
感谢您提前回复.
我发现了一个关于滚动列表视图和按钮点击的类似问题,但它对我没有帮助.我的问题是:
我有一个自定义行的列表视图.我有两种不同的listview状态; 状态之间的切换是屏幕底部的按钮.第二个状态在每行中都有删除按钮.当我单击特定行中的删除按钮时,该行将从数据库中删除并更新列表视图.一切都很好,除了我需要两次点击删除按钮才能使它工作.以下是我处理点击的代码.flag == 1是listview的第二个状态.
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
View main = parent.getChildAt(position);
TextView delete = (TextView)main.findViewById(R.id.delete_button);
if(flag==0){
switchToItemsView(id);
}
if(flag==1){
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDbHelper.deleteList(id);
updateListView();
}});
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试将父视图的focusableInTouchMode属性设置为false,如另一篇文章所示,但它没有帮助.
如果你能帮我解决这个问题,我将不胜感激,
先感谢您.
我试图在listview行中设置视图的所有属性,这些属性将对点击作出反应(可以是简单的按下,长按或其他任何内容).我尝试将父视图和子视图的.setFocusable,.setFocusableInTouchMode,.setLongClickable,.setClickable,.setPressed,.setSelected,.setHapticFeedbackEnabled属性设置为false,但它没有帮助.
我点击按钮在列表视图的两个状态之间切换.当我切换到第二状态时,我想禁用行上的所有点击.我用不同的自定义cursoradapter填充listview的每个状态.以下代码片段来自我的第二个状态的第二个cursoradapter:
@Override
public void bindView(View view, Context context, Cursor cursor) {
RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.title_rows_relativelayout);
TextView lists_text = (TextView) view.findViewById(R.id.list_title_text);
lists_text.setText(cursor.getString(cursor.getColumnIndex(ListsDbAdapter.TITLE)));
lists_text.setBackgroundResource(R.drawable.background_for_rows);
parent.setBackgroundResource(R.drawable.background_for_rows);
view.setFocusable(false);
view.setFocusableInTouchMode(false);
view.setHapticFeedbackEnabled(false);
view.setLongClickable(false);
view.setClickable(false);
view.setPressed(false);
view.setSelected(false);
parent.setFocusable(false);
parent.setFocusableInTouchMode(false);
parent.setHapticFeedbackEnabled(false);
parent.setLongClickable(false);
parent.setClickable(false);
parent.setPressed(false);
parent.setSelected(false);
lists_text.setFocusable(false);
lists_text.setFocusableInTouchMode(false);
lists_text.setHapticFeedbackEnabled(false);
lists_text.setLongClickable(false);
lists_text.setClickable(false);
lists_text.setPressed(false);
lists_text.setSelected(false);
}
Run Code Online (Sandbox Code Playgroud)
先感谢您.
我试图将PHP变量传递给javascript函数.我知道有很多关于这个问题的文章/问题,但它们似乎都不适合我.我的问题有点奇怪.让我从代码开始.
这是我的PHP代码:
<?php
session_start();
$type = 'Dance';
$environment = 'Outside';
?>
Run Code Online (Sandbox Code Playgroud)
这是HTML代码:
<form onsubmit="showEvents(<?=$type ?>, <?=$environment ?>)">
<select class="drop_down_menus" name="type">
<option>All</option>
<option>Dance</option>
<option>Festival</option>
<option>Music</option>
<option>Stand-Up</option>
<option>Theather</option>
</select>
<select class="drop_down_menus" name="environment">
<option>All</option>
<option>Indoor</option>
<option>Outdoor</option>
</select>
<input type="submit" id="submit_button" value="Event Me Out!">
</form>
<div id="test_div">test1</div>
Run Code Online (Sandbox Code Playgroud)
这是JS代码:
function showEvents(type, environment) {
document.getElementById('test_div').innerHTML = "test2";
}
Run Code Online (Sandbox Code Playgroud)
当我单击提交按钮时,"test_div"的文本必须从"test1"更改为"test2",但在提交表单时没有任何更改.
奇怪的事情从这里开始:
当我使用以下PHP变量并将两个变量更改为"$ current_year"时,它可以工作!
<?php
$today = getdate();
$current_year = $today['year'];
?>
<form onsubmit="showEvents(<?=$current_year ?>, <?=$current_year ?>)">
...rest of the HTML code...
Run Code Online (Sandbox Code Playgroud)
我首先认为这是一个范围问题,但显然不是因为一个变量有效,而有些变量不是因为范围相同.
也许有一些非常简单的事我不知道.如果你能帮助我(或指导我另一个问题),我将不胜感激.迄今为止,这些解决方案都没有帮助我.
先感谢您.
注1:我试图回应 …
我最近完成了我的第一个Android应用程序,并将在几天内将其提交给市场.我正在研究如何支持所有屏幕并尽可能多地接触到所有人.我已经为所有屏幕准备了所有图形并在模拟器中测试它们看起来很棒但是我没有在清单中添加任何附加代码来支持所有屏幕.
我遇到了很多关于使用以下代码的话题:
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true" />
Run Code Online (Sandbox Code Playgroud)
但我不想使用它,因为我的minSdkVersion是8,我需要为xlargeScreens准备一个不同的apk.我根本不想这样做.
我的问题是:如果我不在清单文件中使用上述代码,我的应用程序是否会对所有设备可见?
先感谢您.
我问这个问题只是因为我很好奇,可能这是一个非常愚蠢和非常有名的事情,但我无法在网上找到答案:
今天我用他的网站帮助了一位朋友.他让我准备一个html电子邮件模板,他可以通过他的网站(例如www.myfriendswebsite.com)用phpmailer发送.我准备了它并在我的域/服务器中测试,将他的电子邮件地址(例如info@myfriend.com)放在"from"部分.我通过我的网站(例如www.mywebsite.com)发送了一封电子邮件到我的个人电子邮件地址(例如myname@hotmail.com),当我收到电子邮件时,我意识到我甚至没有看到我的域名.姓名或电子邮件地址(例如info@mydomain.com); 相反,我看到了我朋友的电子邮件地址(info@myfriend.com).当我点击"回复"时,它会回复我朋友的地址; 它看起来好像是直接从我朋友的网站发送的.当然; 如果我提取原始来源,我会看到收到电子邮件的地方的详细信息,但是什么阻止了其他人使用我的电子邮件地址和垃圾邮件的人?我很确定这是另一种发送垃圾邮件和黑客攻击人们帐户的方法,但有没有办法防止这种情况发生?它吓到了我一点,我不知道还能转向哪里但Stackoverflow :)