我是Android开发的新手,所以这是一个基本问题。

我想实现与“联系人”应用程序相同的行为。您有一个带有一系列联系人的ListView |电话图标。单击联系人姓名时,有一种行为,而单击电话图标时,有另一种行为。

这是我的代码。 非常感谢您的帮助。

总而言之,这种方法有什么问题

开关(v.getId()){ 案例R.id.imageButtonAction:

活动分类 通用标签

活动xml 通用标签

行xml

public class CompaniesActivity extends Activity  {

MyApp app;

ListView listCompanies;

Cursor cursor;

// Adapter and its corresponding FROM and TO statements. The number and sequence of the arguments must match in FROM / TO arguments.
SimpleCursorAdapter adapter;
static final String[] FROM = { MenuNavigationData.C_COMPANY, MenuNavigationData.C_DESCRIPTION};
static final int[] TO = { R.id.textCompany, R.id.textDescription }; //

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.companies);

    //Gets a reference to the application
    app = (MyApp) getApplication();

    // Find your views
    listCompanies = (ListView) findViewById(R.id.listCompanies);

    addButton = (Button) findViewById(R.id.buttonAdd);

    // Add actions to user interaction
    listCompanies.setOnItemClickListener(new OnItemClickListener() {
        @Override
        **public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {


            switch (v.getId()) {
                case R.id.imageButtonAction:
                    startActivity(new Intent(app, InstructionsActivity.class));
                    break;
                default:
                    int i = adapter.getItemViewType(position);
                    startActivity(new Intent(app, EditMenuNavigationActivity.class));
                    break;
            }**

        }
    });

}

有帮助吗?

解决方案 2

一种新的更好的方法,可以用更少的代码优雅地解决此问题!!!

经过以下修改,用户界面的响应速度更快,不再出现双击问题。:)

简单得多的代码要少得多!

对行xml的修改

插入线性布局以包装两个 在此线性布局中,插入名为android:onClick=“ editCompanyClick”的标签 这是将在“活动”中调用的点击处理程序。

插入线性布局以包装 在此线性布局中,插入名为android:onClick=“ dialClick”的标签 这是将在“活动”中调用的点击处理程序。

对活动类的修改

删除以前的代码 通用标签

插入代码 通用标签

行xml 通用标签

其他提示

您的onItemClick()回调函数既可以接收特定的视图,也可以接收其位置(从0开始),这些都可以帮助您确定单击了哪个视图。该位置是添加项的索引,对于更复杂的场景,您可以查看.setTag(Object o),并使用getTag()从回调中检索它。

我终于找到了解决方案。 这样就解决了这个问题。但是又增加了一个。正如预期的那样,当用户单击不同的视图(TextView或ImageView)时,ListView现在的行为有所不同。 但是似乎没有反应。我必须“双击”才能触发company.setOnClick或Dial.setOnClick。有什么建议吗?

//向用户交互添加操作 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top