小编krt*_*ush的帖子

Room DB:Dao 和 RoomDatabase 类的重复类问题

我的应用程序中有一个简单的 Room 实现,但在构建应用程序时遇到了 Dao 和 RoomDatabase 类的问题(构建失败)。

\n
    \n
  1. Dao 类是“NoteDao”

    \n
    @Dao\ninterface NoteDao {\n\n @Query("SELECT * FROM notes")\n suspend fun getAllNotes(): List<Note>\n\n @Query("SELECT * FROM notes WHERE uid = :uid")\n suspend fun getNoteByUid(uid: Int): Note\n\n @Insert(onConflict = OnConflictStrategy.REPLACE)\n suspend fun insertNote(note: Note): Long\n\n @Delete\n suspend fun deleteNote(note: Note): Int\n}\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 房间数据库类

    \n
     @Database(\n     entities = [Note::class],\n     version = 1,\n     exportSchema = false\n )\n abstract class AppDatabase : RoomDatabase() {\n\n abstract fun noteDao() : NoteDao\n\n companion object {\n\n     @Volatile …
    Run Code Online (Sandbox Code Playgroud)

android kotlin-android-extensions android-room

8
推荐指数
1
解决办法
1483
查看次数

如何通过DialogFragment使用startActivityForResult()?

我的应用需要添加用户名才能正常运行.mainActivity在顶部显示它从数据库中检索的用户名.mainActivity还有一个按钮,通过startActivityForResult()方法导致'addusername'活动; 当用户实际输入用户名时,只有主活动上的用户名才会刷新并显示."addusername"活动上有一个提交按钮,用于添加用户名,setResult(RESULT_OK);
如果通过单击"addusername"按钮输入用户名,则Everything正常工作.

现在,我在mainActivity中添加了一个对话框,只有在数据库中没有用户名时才会启动应用程序.对话框提供了添加用户名的选项,如果单击该用户名,则会导致"addusername"活动.但按下"提交"按钮后,mainActivity会被调用,但用户名不会刷新(但数据库确实会更新)

以下是"addusername"活动的代码:

public void submitusername(View view) {

    userdatabase name = new userdatabase(this);
    name.open();
    String user = name.getusername();
    name.close();

    EditText cinone = (EditText) findViewById(R.id.username);
    username = cinone.getText().toString();

    if(user.equals("")) {

        userdatabase entry = new userdatabase(Editprofile.this);
        entry.open();
        entry.createEntry(username, null, null, null);
        entry.close();

        Context context = getApplicationContext();
        CharSequence text = "Added new user!";
        int duration = Toast.LENGTH_LONG;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();

    }

    else {

        userdatabase update = new userdatabase(Editprofile.this);
        update.open();
        update.updateUsername(username);
        update.close();

        Context context = getApplicationContext();
        CharSequence …
Run Code Online (Sandbox Code Playgroud)

java android android-dialog

7
推荐指数
2
解决办法
8477
查看次数

导航组件:从Viewpager中的Fragment导航到另一个Fragment

我有一个Fragment A导航到Fragment B

Fragment B主机 a ViewPager2.

ViewPager2里面有两个膨胀的碎片 -Fragment CFragment D

单击 中的项目后,Fragment C我想导航到Fragment D之上的新实例Fragment B

目前,我的代码是这样的 -

findNavController().navigate(
            R.id.action_FragmentC_to_FragmentD,
            bundleOf("id" to id, "type" to "list")
        )
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试导航时,出现以下异常 -

java.lang.IllegalArgumentException: Navigation action/destination com.test.at:id/action_FragmentC_to_FragmentD cannot be found from the current destination Destination(com.krtkush.audiotime:id/FragmentB) label=FragmentB
Run Code Online (Sandbox Code Playgroud)

据我所知,导航组件仍然处于打开状态Fragment B,但我正在尝试导航到Fragment Dfrom Fragment C,因此它引发了异常。

我(认为)可以通过添加一个侦听器来解决此问题,该侦听器会通知Fragment B何时点击该项目 Fragment C,然后导航到Fragment Dfrom Fragment B …

android android-fragments android-viewpager android-navigation android-architecture-navigation

6
推荐指数
1
解决办法
1461
查看次数

使Datepicker按钮看起来与Google日历应用程序中的按钮类似

我的应用程序应该有一个Datepicker.要调用日期选择器片段,按下一个按钮,然后出现浮动日期选择器.我的问题是该按钮看起来与用于接受数据的其他UI组件不相似.有什么办法可以让按钮外观和功能像谷歌日历应用程序中的那样?日期选择器按钮动态显示所选日期,并希望也具有该功能.

精选参考:

我当前的按钮:

在此输入图像描述

我想要实现的按钮类型: 在此输入图像描述

android android-datepicker android-layout android-button android-calendar

5
推荐指数
1
解决办法
2357
查看次数

无法将Facebook页面的Feed添加到我的应用程序中

我希望我的应用程序只显示Facebook页面发布的帖子,而无需任何身份验证.这是代码:

public class Main extends Activity {

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

    try {
    String APP_ID = "1234567890";         
    String APP_SECRET = "1a2b3c4defghijk";
    String OWNER_OF_FEED = "somepage";

    HttpClient client = new DefaultHttpClient();
    HttpGet get = new HttpGet(
            "https://graph.facebook.com/oauth/access_token?client_id="+ 
            APP_ID + 
            "&client_secret="+APP_SECRET+"&grant_type=client_credentials");

    ResponseHandler<String> responseHandler = new BasicResponseHandler();

    String access_token = client.execute(get, responseHandler);

    String uri = "https://graph.facebook.com/" + OWNER_OF_FEED + "/feed?"
            + access_token;

    get = new HttpGet(uri);
    String responseBody = client.execute(get, responseHandler);

    // responseBody contains JSON-encoded feed

    //textview.setText(responseBody);
    TextView txtv …
Run Code Online (Sandbox Code Playgroud)

android facebook

4
推荐指数
2
解决办法
7502
查看次数

从DialogFragment(DatePicker)检索和设置数据

当我按下活动上的按钮时,将调用我的DialogFragment类.我希望通过此DialogFragment设置的日期显示在按钮文本上.FindViewById拒绝被类识别.

我发现了一个类似的问题,但我无法将其与我的案例联系起来.

码:

  1. 调用Dialogue片段的按钮:

    public void datepicker(View v) {
        DialogFragment newFragment = new DatePickerFragment();
        newFragment.show(getFragmentManager(), "datePicker"); 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 对话片段代码:

    public class DatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {
    
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceSateate) {
    
            final Calendar c = Calendar.getInstance();
                int year = c.get(Calendar.YEAR);
                int month = c.get(Calendar.MONTH);
                int day = c.get(Calendar.DAY_OF_MONTH);
    
                return new DatePickerDialog(getActivity(), this, year, month, day);
            }
    
            public void onDateSet(DatePicker view, int year, int month, int day) {
                // Do something with the date chosen
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

android android-dialogfragment

3
推荐指数
1
解决办法
1万
查看次数

即使在实现close()之后,也从未在数据库上显式调用Close()

即使我已经实现了上述方法close(),Eclipse也向我显示了上述错误.

这是代码:

public void update_project(View view) {

    EditText cinone = (EditText) findViewById(R.id.pname);
    pname = cinone.getText().toString();

    String fDate = pday + ". " + pmonth + ". " + pyear;

    projectdatabase dbupdate = new projectdatabase(UpdateProject.this);

    dbupdate.open();
    dbupdate.updateProject(id, pname, fDate); 
    dbupdate.close();

}
Run Code Online (Sandbox Code Playgroud)

logcat的:

12-31 22:05:51.114: E/SQLiteDatabase(4180): close() was never explicitly called on  
database '/data/data/com.kk.project/databases/project_db' 
12-31 22:05:51.114: E/SQLiteDatabase(4180):  
android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the     
cursor or database object that was opened here
12-31 22:05:51.114: E/SQLiteDatabase(4180):     at  
android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1943)
12-31 22:05:51.114: E/SQLiteDatabase(4180):     at 
android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1007)
12-31 …
Run Code Online (Sandbox Code Playgroud)

android android-sqlite

3
推荐指数
1
解决办法
2064
查看次数

Spring Security:无法启用 PermitAll() 到 POST API

我正在尝试将 Spring Security 实现到 POST API -

http?.authorizeRequests()
                ?.antMatchers(HttpMethod.POST, "/user/details")?.permitAll()
                ?.antMatchers("/user/**")?.hasRole("admin")
                ?.and()
                ?.formLogin()
Run Code Online (Sandbox Code Playgroud)

但是,permitAll()似乎不起作用。但是,如果我替换HttpMethod.POSTHttpMethod.GET,则其下的 GET 请求将遵循antMatcher预期的规则。

POST 请求有不同的方式吗?

spring-security spring-boot

2
推荐指数
1
解决办法
433
查看次数

我的软件需要数据库吗?

我正在制作一个软件作为个人项目.该软件旨在表现为个人日记,必须存储大量文本和数字.到目前为止,它不会以任何方式连接到互联网.

我的问题是 - 我是否需要基于SQL等的数据库或通过C/C++进行简单的文件处理?

database

1
推荐指数
1
解决办法
427
查看次数

一个简单的程序,用于查找字符串中不能正常工作的元音数量

我正在尝试使用JavaScript,我的浏览器拒绝执行我使用switch case函数编写的程序.目标是找到一个字符串中的元音数量(考虑所有都以小写字母输入)

当我点击"提交"按钮时,框中的文字消失但没有任何反应.警报"你好"也没有出现,所以我假设该功能甚至没有被执行.

   <html>
   <head>
   <script>
   function vow(form)
    {
     alert("hello");
     var a = new Array(10);
     a = form.t1.value;
     var flag = 0;
     var i;

     for(i=0;i<10;i++)
       {
     switch (a[i])
      {
       case 'a':
       flag++;
       break;

       case 'e':
       flag++;
       break;

       case 'i';
       flag++;
       break;

       case 'o';
       flag++;
       break;

       case 'u';
       flag++;
       break;
      }
      }
  alert(flag);  
  }
  </script>
  </head>

  <body>
  <form>

  <input type="text" name="t1">
  <input type="submit" value="SUBMIT" onClick="vow(this.form)"/>

  </form>
  </body>
  </html>
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
2
解决办法
1万
查看次数