我有一个SQLite数据库,其中包含以下信息
-------------------------------- Account_Name Account_Balance -------------------------------- Savings 1000.00 Checking 1000.00
我将项目输出到列表视图。我的问题是如何让我的OnItemClick正确地告诉我选择的值?当我单击保存时,我希望“保存”通过吐司显示。当我尝试输出时,我只能输出项目位置。我不想要列表视图中的位置,我对字符串值更感兴趣。
public void onItemClick(AdapterView parent, View view, int position, long id) { /*What do I need to code here to just have the value outputted*/ //Toast toast = Toast.makeText(getApplicationContext(), temp1, Toast.LENGTH_LONG); //toast.show(); }
代码:主菜单活动。JAVA
public class main_menu_activity extends Activity implements AdapterView.OnItemClickListener
{
DatabaseHandler db;
ArrayList<Account> account_details;
ListView accountList;
int num;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu_activity);
accountList = (ListView)findViewById(R.id.accountListView);
db = new DatabaseHandler(getApplicationContext());
displayListView();
// Empty Account table
//db.deleteFromAccountTable();
accountList.setOnItemClickListener(this);
num = 1;
}
// MENU //
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu_activity, menu);
return super.onCreateOptionsMenu(menu);
}
// MENU //
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// take appropriate action for each action item clicked
switch(item.getItemId())
{
case R.id.action_add_new:
{
// perform add new item action
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setMessage("Enter account details:");
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
// Set an EditText view
final EditText input = new EditText(this);
input.setHint("Account Name");
layout.addView(input);
final EditText input2 = new EditText(this);
input2.setHint("Account Balance");
layout.addView(input2);
alert.setView(layout);
alert.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
if (input.getText().toString() != null)
{
// Create empty Account
Account temp_account;
temp_account = new Account();
// Save information to SQLiteDatabase
temp_account.setAccountName(input.getText().toString());
temp_account.setAccountBalance(Double.parseDouble(input2.getText().toString()));
// Add temp account
db.addAccount(temp_account);
displayListView();
}
else
{
dialogInterface.cancel();
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
// Output to logcat
/*ArrayList<Account> allAccounts = db.getAllAccounts();
for (Account account: allAccounts)
{
Log.d("Output", Integer.toString(account.getAccountID()));
Log.d("Output", account.getAccountName());
Log.d("Output", Double.toString(account.getAccountBalance()));
}*/
// cancel
dialogInterface.cancel();
}
});
alert.show();
return true;
}
default:
{
return super.onOptionsItemSelected(item);
}
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
/* CODE TO OUTPUT SELECTED LISTVIEW VALUE */
}
// DISPLAY ACCOUNT LISTVIEW //
public void displayListView()
{
account_details = new ArrayList<Account>();
account_details = db.getAllAccounts();
accountList.setAdapter(new ListViewBaseAdapter(account_details,this));
}
}
listview。xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="6dip" >
<TextView
android:id="@+id/account_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textColor="#00628B"
android:textSize="22dp"
android:textStyle="bold"/>
<TextView
android:id="@+id/account_balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textColor="#00628B"
android:textSize="22dp"/>
</RelativeLayout>
我想你有自己的自定义适配器。因此,您可以在getView()
方法中将OnClickListener
s附加到每个需要的视图(在您的例子中是TextView)。然后在此侦听器中执行以下操作:
View.OnClickListener() {
@Override
public void onClick(View v) {
TextView myView = (TextView) v;
Toast.makeText(context, myView.getText(),Toast.LENGTH_SHORT).show();
}
}
如果你只是想知道名字,那你为什么不试试这样的方法:
代码如下所示:
String type=((TextView) view.findViewById(R.id.accountType)).getText();
您需要为该行创建一个自定义适配器(和布局文件),然后为该行中的每个视图添加处理程序。
Vogella有一些很棒的教程,所以我不会重复它们,我会告诉你。
我正在尝试将ArrayList中的一个值放入我的listView,下面是详细信息。 这是ArrayList信息的示例: 我想从用户ArrayList中获取州数据,例如,我只想获取“新墨西哥州”、“亚利桑那州”、“亚利桑那州”和“加利福尼亚州”的数据,并将其显示在我的listView中 如果可能的话,我还想删除副本并按升序排序 下面是我的代码 我知道我不应该在arrayAdapter中使用state
问题内容: 这是我第一次接触android。我正在尝试向我的ListView添加项目。我使用“选项卡”,查看添加项目的唯一方法是更改选项卡,然后返回到第一个选项卡。 我到处搜寻,而且一直都找到 但对我不起作用。 正如我所说,我已经使用固定标签+滑动创建了项目。我只希望有一个列表视图,哪些行具有一个EditText,一个Spinner和一个Button。在用于选项卡的Fragment的底部,我有
我只是为 而我得到一些错误 错误:(166,86)错误:不是抽象的并且没有覆盖OnItemLongClick(AdapterView, View, int, long)中的抽象方法OnItemLongClick(AdapterView, int, long)错误:(168,25)错误:onItemLongClick(AdapterView, View, int, long)中无法实现OnItemL
Android Horizontal ListView 是 Android 上一个水平滑动的 ListView 组件。
本文向大家介绍Android 中ListView和GridView赋值错位,包括了Android 中ListView和GridView赋值错位的使用技巧和注意事项,需要的朋友参考一下 ListView和GridView多次调用getView的bug,导致赋值错位 最近总遇到写GridView适配器赋值时,最后一两个需定义其他图片时,赋图错误,原因就是适配器的getView多次调用,导致数据赋值错误
问题内容: 我有一个ListView活动,该活动需要项目列表的页脚,以便您可以单击它,这会将更多项目加载到列表中。该列表由我的SimpleAdapter支持,该SimpleAdapter由字符串映射支持,并且在设置适配器之前,我这样做是为了添加页脚: 但是我在调试器中得到了这个异常 java.lang.NullPointerException android.widget.ListView.c