According to Kearns (2011), for material implication, if p is false, q is true, then p->q is true. One example is given like this, p = Marie invited John, q = John will go. It can be translated into "Marie didn't invite John, but he will go anyway. And the implication is true". But why? Does the true value depend on q? Since material implication is not related to the context, how did the implication from?
As mentioned in the comments, there are a lot of explanations of material implication out there on StackExchange. I definitely recommend looking through them, and reading jlawler's Logic Study Guide.
But to add one more to the mix…
The key to understanding the material implication is that it's not actually meant to be the general English "if…then…". In fact, the full meaning of the English "if…then…" construction can never be properly distilled down into propositional logic, because a lot of it relies on pragmatic implicature, which propositional logic doesn't try to capture. (That is, if I say "if it doesn't rain tomorrow, I'll be at the party", most people will infer that if it does rain, I won't be at the party. But this isn't considered part of the statement's fundamental meaning, because it can be cancelled out by another statement without making the first sentence seem wrong: "…and if it does rain, I'll do my best to go anyway".)
Instead, think of material implication as a mathematical sort of if-then. It's a special, fine-tuned version of if-then designed specifically for mathematical use; the intended use-case is for statements of mathematical truth like "if x is a square, then x is a rectangle". Mathematically, you would consider that statement to be true, wouldn't you?
But crucially, this statement says nothing at all about what happens if x is not a square. It's entirely possible that x could be not a square, but still be a rectangle; it's also entirely possible that x could be not a square, and also not a rectangle (e.g. it could be a circle). And neither of these cases should be able to disprove the statement "if x is a square, then x is a rectangle".
False → False and
False → True both have to evaluate to
True, for this special mathematical if-then to work the way we want it to. We want "if x is a square, then x is a rectangle" to always be considered true, and this means it has to count as true even in cases where x is not a square.