在按钮上添加和显示数据单击android

时间:2017-07-28 17:52:32

标签: android

  

我想在点击按钮时在我的数据库中添加数据,我想在列表视图中显示数据。我正在创建一个应用程序,其中有一个edittext字段和一个按钮。如果用户在字段中输入名称,点击按钮数据应该添加到数据库中,列表视图也会填充数据。我发布了我的代码,它使用游标适配器,listview显示数据和按钮执行操作。   我也在使用游标加载器。我已经实现了游标加载器的基本功能。

Here is my xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.nitikakamboj.drawapp.MainActivity">
       <LinearLayout
           android:id="@+id/linear_layout"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:padding="16dp"
           android:orientation="horizontal">
         <EditText
             android:id="@+id/name_field"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:hint="Enter Name"
             android:layout_weight="1"/>
           <Button
               android:id="@+id/add_button"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="add"/>
       </LinearLayout>
        <TextView
            android:id="@+id/no_name"
            android:layout_below="@id/linear_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="No Name in List"
            android:layout_centerInParent="true"
            android:visibility="gone"
            android:textSize="24sp"
            android:textAllCaps="true"
            />
       <ListView
           android:id="@+id/listView"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_below="@id/no_name"></ListView>
    </RelativeLayout>

这是我的主要java代码
我发布了我的代码,它使用游标适配器,listview显示数据和按钮执行操作。 我也在使用游标加载器。我已经实现了游标加载器的基本功能。

public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor>{
      private EditText mNameEditText;
      NameCursorAdapter nameCursorAdapter;
       SQLiteDatabase database;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         final ListView nameListView=(ListView)findViewById(R.id.listView);
        nameCursorAdapter=new NameCursorAdapter(MainActivity.this,null);
        nameListView.setAdapter(nameCursorAdapter);
        mNameEditText=(EditText)findViewById(R.id.name_field);

        Button mAddButton=(Button) findViewById(R.id.add_button);
        mAddButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
           String name=  mNameEditText.getText().toString();
            if(name.length()>0)
            {

            }
            }
        });
    }

    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
       String projection[]={NameEntry._ID,
       NameEntry.COLUMN_NAME};
        return new CursorLoader(this,NameEntry.BASE_CONTENT_URI,
                projection,
                null,
                null,
                null);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
          nameCursorAdapter.swapCursor(data);
    }

    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
          nameCursorAdapter.swapCursor(null);
    }
}

1 个答案:

答案 0 :(得分:1)

首先,您需要在活动的onCreate方法中获取对XML按钮的引用:

Button mAddButton = (Button)findViewById(R.id.add_button);

然后,添加一个OnClickListener:

mAddButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        //Do database stuff here, for example: grab text from EditText and save to DB table.
    }
}

然后,每当您单击该按钮时,该OnClickListener将运行代码以保存您的数据。

快乐的编码!