小编ViR*_*LiC的帖子

Android,TelephonyManager,PhoneStateListener和传入号码的乐趣

我刚刚进入Android开发阶段,并决定我对这个新领域的第一次征服将是掌握手机对来电的反应.

稍微用谷歌搜索引导我到http://www.compiletimeerror.com/2013/08/android-call-state-listener-example.html#.Vi3Ren4vfwM(所以我的代码与他/她的代码有着惊人的相似之处).

我的主要(也是唯一)活动如下所示:

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TelephonyManager TelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    TelephonyMgr.listen(new TeleListener(),
            PhoneStateListener.LISTEN_CALL_STATE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
class TeleListener extends PhoneStateListener {
    public void onCallStateChanged(int state, String incomingNumber) {
        super.onCallStateChanged(state, incomingNumber);
        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                // CALL_STATE_IDLE;
                Log.d("MyLittleDebugger", "I'm …
Run Code Online (Sandbox Code Playgroud)

android telephonymanager phone-state-listener

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

Gson,JSON和LinkedTreeMap的微妙之处

我最近开始玩JSON字符串,并被告知谷歌自己的库Gson,是处理这些的新的和时髦的方式.

我理解它的方式是JSON字符串本质上是一个地图.每个变量指向字符串中的值.

例如:

String jsonInput2 = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\"}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好.JSON创建此字符串时的信息可以使用以下代码分配给变量:

Gson gson = new Gson();

Map<String, String> map = new HashMap<String, String>();

map = (Map<String, String>) gson.fromJson(jsonInput, map.getClass());

String createdAt = map.get("created_at");
Run Code Online (Sandbox Code Playgroud)

它在简约之美中几乎是艺术性的.但这就是美丽结束的地方,我的困惑开始了.

以下是上述JSON字符串的扩展名;

String jsonInput2 = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\",\"user\":{\"id_str\":\"366301747\",\"name\":\"somethingClever\",\"screen_name\":\"somethingCoolAndClever\"}}";
Run Code Online (Sandbox Code Playgroud)

我的问题是这些"括号内的括号"如何适用于该user部分JSON

如何将这些内括号中指定的值分配给变量?

任何人都可以向我解释,或者在代码中向我展示如何Gson处理这样的东西,以及我如何使用它?

简而言之,为什么......

String jsonInput = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\",\"user\":{\"id_str\":\"366301747\",\"name\":\"somethingClever\",\"screen_name\":\"somethingCoolAndClever\"}}";

Gson gson = new Gson(); …
Run Code Online (Sandbox Code Playgroud)

java json gson

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

使用Jackson的JSON字符串到Java对象

这可能是标题说明的所有问题之一.

我非常着迷readValue(file, class)于在Jackson库中找到的ObjectMapper 方法,该方法从文件中读取JSON字符串并将其分配给对象.

我很好奇是否可以通过从字符串中获取JSON并将其应用于对象来实现.

某种替代readValue()方法,它接受String而不是文件,并将其分配给对象?

例如,虽然默认readValue(file, class)方法如下所示:

ObjectMapper mapper = new ObjectMapper();
Student student = mapper.readValue("C:\\student.json", Student.class);
Run Code Online (Sandbox Code Playgroud)

我想知道杰克逊是否有某种方法允许以下方法:

ObjectMapper mapper = new ObjectMapper();
Student student = mapper.readValue("{\"id\":100,\"firstName\":\"Adam\"}", Student.class);
Run Code Online (Sandbox Code Playgroud)

第二个示例采用字符串和类的对象,而第一个示例采用文件和类的对象.

我只是想切出中间人,在这种情况下,文件.

这是可行的还是在杰克逊的限制范围内不存在这样的方法?

java json jackson json-deserialization

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

杰克逊为Eclipse中的初学者

我只想说我还在学习Java和Eclipse的微妙之处,我来找你,因为我不确定如何正确地将我的问题用于谷歌或StackOverflow的搜索引擎.道歉,如果它无限琐碎.

我试图理解将JSON格式字符串转换为Java中的对象的过程.我在网上找到以下示例:

import java.io.IOException;

import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;public class JsonToJavaConverter {

private static Logger logger = Logger.getLogger(JsonToJavaConverter.class);

public static void main(String args[]) throws JsonParseException,
        JsonMappingException, IOException {

    JsonToJavaConverter converter = new JsonToJavaConverter();

    String json = "{\n" + "    \"name\": \"Garima\",\n"
            + "    \"surname\": \"Joshi\",\n"
            + "    \"phone\": 9832734651}";

    // converting JSON String to Java object
    converter.fromJson(json);
}

public Object fromJson(String json) throws JsonParseException,
        JsonMappingException, IOException {
    User garima = new ObjectMapper().readValue(json, User.class);
    logger.info("Java Object created from …
Run Code Online (Sandbox Code Playgroud)

java eclipse json jackson

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

json字符串以未知数对象

正如标题所描述的,我正在尝试为我的类分配一个 json 字符串,但 json 字符串可能包含几个我没有在它们被分配到的类中创建的变量。

为了首先向您展示什么有效,我有

    ObjectMapper mapper = new ObjectMapper();

    try {

        Tweet tweet1 = mapper
                .readValue(
                        "{\"created_at\":\"Sat Feb 08 11:26:02 +0000 2014\"}",
                        Tweet.class);

    } catch (JsonMappingException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为 Tweet 类具有变量“created_at”,并带有 getter 和 setter 方法。

就像提到的那样,我需要期望 readValue 方法中的字符串包含在我的 Tweet 类中找不到的东西。

为了解决这个问题,我导入并使用:

    mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这可以帮助我避免那里的所有未知数,并且只分配要在 Tweet 类中找到的值。

因此,我添加了一个在 Tweet 中找不到的值,如下所示:

    ObjectMapper mapper = new ObjectMapper();
    mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

    try {

        Tweet tweet1 = mapper
                .readValue(
                        "{\"created_at\":\"Sat Feb 08 11:26:02 +0000 2014\",\"id\":432113085571407872\"}",
                        Tweet.class);

    } catch …
Run Code Online (Sandbox Code Playgroud)

java string json

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

使用C#将Outlook邮件附件转换为字节数组

合理的警告:我是C#Outlook 的新手,所以请耐心等待。

我一直在尝试在Outlook中使用电子邮件来构建自己的快速又脏的插件,但是该插件要求我将附件发送到其他系统。

长话短说; 为此,我需要将Outlook项目的邮件附件转换为byte数组。

到目前为止,我所拥有的(完整的代码显然比这要长得多,但是我敢肯定,与坐下来阅读代码的上下一页相比,我们所有人都有更好的事情要做):

Outlook.Selection sel = control.Context as Outlook.Selection;
Outlook.MailItem mail = sel[1];
Outlook.Attachment a = mail.Attachments[0];
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道如何转换abyte数组。

PS:关于如何将byte数组转换为邮件,我知道大约有十亿个答案,但是没有一个可以解释如何使数组反过来运行的答案。

编辑1:我宁愿不必保存文件。

c# email outlook

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

Java中的Calendar对象,返回错误的时间?

所以我一直在研究一个简单的小方法,它会返回一个Stringas Calendar对象.

这就是我所拥有的:

Calendar cal = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);

try {
    cal.setTime(sdf.parse(this.getCreated_at()));
}
catch (ParseException e) {
    e.printStackTrace();
}

return cal;
Run Code Online (Sandbox Code Playgroud)

现在假设String获得this.getCreated_at())的总是处于所需的格式,理论上这应该是完美的.

只有一个小打嗝.

假设this.getCreated_at())返回Mon Feb 10 18:52:54 +0000 2014.应该不是问题吧?格式是正确的,一切.

但是,当我有我的主要方法时,请执行以下操作:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");

System.out.println(sdf.format(... ... ....stringToCalendar().getTime())); 
Run Code Online (Sandbox Code Playgroud)

它给了我以下输出:

ma feb 10 19:52:54 +0100 2014
Run Code Online (Sandbox Code Playgroud)

你可能已经注意到,我的问题是,首先,时间是错误的.它增加了一个小时.

其次,它的翻译文本字段MonFebmafeb它们翻译挪威,在那里我现在编码的地方. …

java string time calendar

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

使用ListBox进行多项选择?

我决定使用一个ListBox用于我的应用程序,在这种情况下,慈善命名lb.我继续填充内容(只有少数几个string)并操纵它的大小和外观,然后将它打成我的形状.

在我玩的选项中,我提到了lb.SelectionMode = SelectionMode.MultiSimple;,因为我希望用户能够选择我string的一个或多个.

现在,直到我添加该SelectionMode行的那一点,lb.SelectedIndex总是指向用户选择的选择(显然是在它之后).

但是当选择多个项目时似乎没有这样做.它似乎只是指向选择的"第一" string.

有什么方法我可以告诉它去NEXT选择的项目,或者可能获得一个新的列表,其中包含所有选定项目的索引?

我怎样才能最好地获取用户选择的所有选定字符串?

c# listbox

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

从HashMap中删除所有值,而不是我正在寻找的值

标题问题总结得很好,但假设我使用Java进行编码并且HashMap看起来像这样(它显然有很多条目):

Map<String, Integer> myMap = new HashMap<>();

myMap.put{"a", 1}
myMap.put{"b", 2}
myMap.put{"c", 2}
myMap.put{"d", 3}
Run Code Online (Sandbox Code Playgroud)

现在,我不喜欢与2的值项,所以我想删除所有尽可能有效地,留下我只能与值1或3项.

它应该看起来好像我的地图是这样的:

Map<String, Integer> myMap = new HashMap<>();

myMap.put{"a", 1}
myMap.put{"d", 3}
Run Code Online (Sandbox Code Playgroud)

好像我的2值条目从来没有在那里!

我有什么选择以有效的方式做到这一点?

java hashmap

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

框架提供了大量信息

这可能是一个奇怪的问题,所以我请求你们在这个问题上与我相提并论.

我想向一个人提供信息JFrame.特别是,a String.

这是捕获,它是一个非常长的String.比如,里程.总共想想几十行信息.

它有点像电话簿,其名称多于您可能适合的页面,并且您只能使用该页面.

所以我在想滚动条.

我试过了:

    JTextArea area = new JTextArea(veryLongText.toString());
    JScrollPane scrollPane = new JScrollPane(area);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为在我添加更多文本之前我无法向下滚动.这不是我想要的.

简单来说,我想要一个文本框,如果窗口太小而无法容纳其中的所有文本,我可以滚动它.

我该怎么做呢?

java swing

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

Apache Derby:java.sql.SQLSyntaxErrorException

我刚刚开始学习SQL,并且正在尝试创建一个表,并在CSV-file 上填充一些数据.

以下是尝试执行此操作的应用程序:

public sqlThingy() throws Exception {

    File spritesheetsCreate = new File("sql/spritesheetsCreate.sql");
    File spritesheetsData = new File("sql/spritesheetsData.sql");

    Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();

    Connection conn = DriverManager
            .getConnection("jdbc:derby:TESTNAME;create=true");

    //CREATE TABLE
    try (PreparedStatement statement = conn
            .prepareStatement(readFile(spritesheetsCreate))) {
        statement.execute();
    }


    //FILL TABLE WITH DATA
    try (PreparedStatement ps = conn.prepareStatement(readFile(spritesheetsData))) {
        try (CSVReader rdr = new CSVReader(new FileReader(new File(
                "res/spritesheets.csv")), ',', '"', 1)) {
            for (String[] row : rdr.readAll()) {
                ps.setString(1, row[0]);
                ps.setString(2, row[1]);
                ps.setInt(3, Integer.valueOf(row[2]));
                ps.execute();
            }
        }
    }
}


private …
Run Code Online (Sandbox Code Playgroud)

java sql csv derby

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